spring ioc 注解配置

要注意spring 版本与jdk的兼容性

applicationContext-resource.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  http://www.springframework.org/schema/tx
  http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
  http://www.springframework.org/schema/aop
  http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.2.xsd ">
  <context:component-scan base-package="com.cdsxt" />
</beans>

base:

public interface BaseDao<T> {}

@Component("baseDao")
public class BaseDaoImpl<T> implements BaseDao<T> {
  private Class clazz;
  public BaseDaoImpl() {
    ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
    clazz =(Class) type.getActualTypeArguments()[0];
  }
  public Class getClazz() {
    return clazz;
  }
  public void setClazz(Class clazz) {
    this.clazz = clazz;
  }
}

action:

/**
* @Controller:专门注解 控制层 类
* @Service :专门注解 业务层类
* @Repository:专门注解持久层类
* @Component:可以注解任何类
* @Scope: 控制是否单例
* @Autowired 和 @Resource 都可以注解 被注入的属性
* @author Administrator
*
*/
@Controller
@Scope("prototype")
public class UserAction {
  @Autowired
  private UserService userService;
  public void add(){
    System.out.println("=======UserAction========");
    userService.add();
  }
  public UserService getUserService() {
    return userService;
  }
  public void setUserService(UserService userService) {
    this.userService = userService;
  }
  public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-resource.xml");
    UserAction u1 =(UserAction) context.getBean("userAction");
    u1.add();
  }
}

service:

public interface UserService {
  public void add();
}

@Service("userService")
public class UserServiceImpl implements UserService{
  @Autowired
  private UserDao userDao;
  @Override
  public void add() {
    System.out.println("=========UserServiceImpl============");
    userDao.add();
  }
  public UserDao getUserDao() {
    return userDao;
  }
  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }
}

dao:

public interface UserDao extends BaseDao<User>{
  public void add();
}

@Repository("userDao")
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{
  public void add() {
    System.out.println("=========UserDaoImpl==========");
  }
}

po:

public class User {}

时间: 2024-08-07 08:06:34

spring ioc 注解配置的相关文章

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

Spring使用注解配置依赖注入

大部分情况下,使用Spring配置依赖注入时,都是使用注解来进行配置,因为注解比xml要方便和简单.不过类似于数据源对象这种配置信息容易变更的对象除外,这种对象使用xml文件来进行配置会更适合,方便于在外部进行修改,而不需要打开代码来进行修改. 接下来简单介绍一下注解的配置方式,首先要让Spring支持注解,编辑Spring配置文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&

Spring AOP 注解配置实例

Spring AOP注解例子 一:导入相关jar包. 首先导入Spring的相关包(这里就不多说了,我这里是3.2.4版本的) 然后导入AOP注解的相关包(不是spring的包)aspectjrt-1.6.7.jar和aspectjweaver-1.6.8.jar和aopalliance.jar (注意这里最好是1.6.7以上的版本,不然容易出错,折腾了我好久,最后才发现是包的版本问题. 所以这里一定要注意,spring 2.0以后的最好是用1.6.7的版本) 二: 建一个class类作为切入面

关于spring中注解配置的问题

今天写spring的时候,想用注解配置,但不巧的是用Junit工具测试的时候出错了,检查了很久的代码,发现并不是代码的问题,那就有些奇怪了. 后来去百度,回答的奇奇怪怪,和我的问题沾边的不多,最后还是FQ找到的答案,废话不多说,先贴出错误提示: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resou

Spring IOC 相关配置-总结

基于XML配置 基于注解配置 基于java类配置 基于Groovy DSL 使用场景 Bean来自第三方,如DataSource.JdbcTemplate等,因为无法在类中标注注解,所以通过xml方式配置比较好. 使用其他命名空间,如aop,context等,只能采用基于xml的配置 Bean的实现类用户开发 实例化bena的逻辑比较复杂 可以通过代码方式控制bean初始化的整体逻辑,如果初始化逻辑比较复杂,则比较适合java类配置的方式 优势在于可以通过Groovy脚本灵活控制Bean初始化的

【spring 事务注解配置】事务回滚

注解配置参考: http://www.cnblogs.com/younggun/archive/2013/07/16/3193800.html 自己测试发现事务没成功,原因是 我测试的表是myisam 存储引擎.myisam不支持事务,一个坑 了我! myisam 和 innodb对比 http://www.cnblogs.com/merlini/p/4079313.html

Spring(四)注解配置Ioc

原文链接:http://www.orlion.ga/216/ 一.@Autowired beans.xml配置成如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

Spring应用注解配置实现IOC

一.组件自动扫描 可以按指定的包路径,将包下所有组件扫描,如果发现组件类定义前有以下标记,就会将组件扫描到容器. @Component 其他组件 @Controller  控制层组件 @Service  业务层组件  XXXService @Repository  数据访问层组件 XXXDao @Named (不是Spring中定义的,需要引入第三方标准包) 组件自动扫描需要我们手动开启,开启方式即在applicationContext.xml中添加以下配置: <context:componen

Spring通过注解配置Bean

@Component: 基本注解, 标识了一个受 Spring 管理的组件@Repository: 标识持久层组件@Service: 标识服务层(业务层)组件@Controller: 标识表现层组件 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&qu