Spring 使用注解的方式实现IOC和DI(控制反转和依赖注入)
2017-11-18 11:37
976 查看
Spring 使用注解的方式实现IOC和DI
注解的方式实现IOC&DI
1、IOC操作
1)@Component :用于实现ioc控制反转,属性value用于实现对象id定义
2)@Scope :用于实现单例,多例,request,session等的配置
3)@Controller : 专门用于controller层的注解,实现控制反转,属性value
4)@Service : 专门用于service层的注解,实现控制反转,属性value
5)@Repository : 专门用于持久层的注解,实现控制反转,属性value
2、DI操作
1)@Resource(name="userService")--实现依赖注入
先按照name加type的方式检索;其次缺失name或者确实type只按照一项进行检索;其次name和type都省略,那么默认还是按照name检索
2)@Autowired---自动装配,此注解实现的自动装配是按照类实现注入,如果出现同名的类,那么此注解方式就不能识别是哪个类实现注入,此时
会出现异常;如果为了避免出现异常,可以采用@Qualifier(value="es")(熟悉)实现辅助,即Qualifier可以指明对象id
下面是演示代码:
项目结构如下:
需要的jar包:
1、UserAction.java action层
2、IUserDAO.java 持久层接口
3、UserDAOImpl.java 持久层接口实现类
4、IUserService.java 服务层接口
5、UserServiceImpl.java 服务层接口实现类
6、applicationContext.xml Spring主配置文件(进行注解支持配置和注解扫描)
注解的方式实现IOC&DI
1、IOC操作
1)@Component :用于实现ioc控制反转,属性value用于实现对象id定义
2)@Scope :用于实现单例,多例,request,session等的配置
3)@Controller : 专门用于controller层的注解,实现控制反转,属性value
4)@Service : 专门用于service层的注解,实现控制反转,属性value
5)@Repository : 专门用于持久层的注解,实现控制反转,属性value
2、DI操作
1)@Resource(name="userService")--实现依赖注入
先按照name加type的方式检索;其次缺失name或者确实type只按照一项进行检索;其次name和type都省略,那么默认还是按照name检索
2)@Autowired---自动装配,此注解实现的自动装配是按照类实现注入,如果出现同名的类,那么此注解方式就不能识别是哪个类实现注入,此时
会出现异常;如果为了避免出现异常,可以采用@Qualifier(value="es")(熟悉)实现辅助,即Qualifier可以指明对象id
下面是演示代码:
项目结构如下:
需要的jar包:
1、UserAction.java action层
package cn.sz.action; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import cn.sz.service.IUserService; @Controller @Scope(value = "prototype") public class UserAction { @Resource(name = "userServiceImpl") private IUserService userServiceImpl; public void save() { } }
2、IUserDAO.java 持久层接口
package cn.sz.dao; public interface IUserDAO { // 添加方法 public void save(); }
3、UserDAOImpl.java 持久层接口实现类
package cn.sz.dao.impl; import org.springframework.stereotype.Repository; import cn.sz.dao.IUserDAO; @Repository(value = "userDAOImpl") public class UserDAOImpl implements IUserDAO { @Override public void save() { } }
4、IUserService.java 服务层接口
package cn.sz.service; public interface IUserService { // 添加方法 public void save(); }
5、UserServiceImpl.java 服务层接口实现类
package cn.sz.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Service; import cn.sz.dao.IUserDAO; import cn.sz.dao.impl.UserDAOImpl; import cn.sz.service.IUserService; @Service(value = "userServiceImpl") public class UserServiceImpl implements IUserService { @Resource(name = "userDAOImpl", type = UserDAOImpl.class) private IUserDAO userDAOImpl; @Override public void save() { } }
6、applicationContext.xml Spring主配置文件(进行注解支持配置和注解扫描)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 注解支持 --> <context:annotation-config></context:annotation-config> <!-- 扫描:当前包中的类和子包中的类 --> <context:component-scan base-package="cn.sz"></context:component-scan> </beans>
相关文章推荐
- 依赖注入(DI)和控制反转(IOC)的详细讲解 spring容器(spring注解实现,而不是xml配置文件)
- spring IOC(控制反转)和DI(依赖注入)以及三种依赖注入方式的比较
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(三):Spring启动加载配置文件源码分析
- Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式
- 实战设计模式——使用IoC模式(控制反转或依赖注入)实现松散耦合设计(1)
- Spring的IoC(控制反转) 、DI(依赖注入)
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(二):模拟Spring加载配置文件
- Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
- Spring.net 控制反转(IOC)依赖注入(DI)的使用 以及Config文件的配置
- (转)关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- Spring——DI(依赖注入)/Ioc(控制反转)
- Spring IOC(控制反转)和DI(依赖注入)
- 关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- 切面(aop)控制反转和依赖注入(IOC,DI)和spring的事务隔离和传播行为
- Spring学习3—控制反转(IOC)基于Annotation(注解)的依赖注入实现
- 【JavaWeb-23】spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(一):用到“反射”编程
- Java面试-Spring IOC(控制反转)和DI(依赖注入)
- 用PHP实现简单的控制反转(IOC) 依赖注入(DI),用JSON配置文件
- Spring IoC和DI(反转控制和依赖注入)原理