本文共 1570 字,大约阅读时间需要 5 分钟。
@新手学习
1. IOC的注解方式
1.1 这个只是最基础的Spring-IOC了,当然最开始要导入IOC的包啦,po图:
要记得把AOP的包也导入进来。
1.2 当然也少不了在applicationContext.xml里面配置
1.2.1 开启springIOC的注解功能
1.2.1.1 首先把命名空间引入,po图:
1.2.1.2 在中的配置,po图:
- context:component-scan:一般在创建spring项目的时候在xml配置中都会配置这个节点,这个节点会自动扫描base-package路径或者该路径下的子包下面的java文件,如果扫描文件中带有@Service.@Component.@Repository.@Controller等这些注解的类,就会把这个类注册bean。PS:如果配置了context:component-scan就不用在配置context:annotation-config了,因为前者包含了后者。
1.2.2 IOC相关的注解
- @Component:当组件不好归类的时候创建对象(一般使用在普通的spring项目)。当注解在一个类上的时候,IOC容器会去自动扫描并把这个类注册成bean保存在容器中。默认的会将类的唯一标识定义成类名小写。
- @Repository:和@Component作用一样,创建对象(在分层项目中,用于标注数据访问DAO组件)。
- @Service:和@Component作用一样,创建对象(在分层项目中,用于标注业务层组件)
- @Controller:和@Component作用一样,创建对象(在分层项目中,用于标注控制层组件如:(struts中的action))
- @Scope:用于注释组件是否是单例或多例,属性:prototype多例,singleton单例
- @PostConstruct:初始化对象方法@PreDestory:销毁对象方法,需要手动的开启这个方法,po图:
2.依赖注入
2.1 @Value
- 这种注入方式比较制杖QuQ,一般不会把值写死。当然这样也是可以把值注入进去的。
- 一般都会加载一个properties文件,用EL表达式取出数据,po图:
2.2 @Autowired
- 自动根据类型注入,po图: PS:Spring会根据注解知道,这个引用是某个接口的,然后再加载到接口的实现类,然后根据实现类的注解将bean装进容器中,注入到引用变量中。 注意:@Autowired如果接口有多个实现类,将无法被注入。所以可以配合接下来这个注解。
2.3 @Qualifer
- 指定注入的对象名称,po图:
- @Qualifer 会根据指定的bean的id来注入指定的对象。 当@Autowired出现多个相同类型的对象的时候(相当于一个接口出现了多个实现类),可以使用@Qualifer指定需要注入的对象.
2.4 @Resource
- 既可以根据类型自动注入,也可以根据指定的对象名称注入,po图:
2.5 @Autowired和@Resource的区别
- 注入的方式不同 @Autowired只能根据类型注入对象,需要配合@Qualifer 指定某个对象的注入。 @Resource 既可以根据类型自动注入,也可以根据指定的对象名称注入。
- 所属的标准不同 @Autowired来自于spring框架,po图: @Resource 来自与JavaEE的标准(推荐使用这个注解),po图:
- 结论:@Resource 比 @Autowired更加标准。推荐使用@Resource注解来注入对象。
参考笔记:@神码学堂
新手上路,有错误的地方欢迎怼死我!! 转载于:https://juejin.im/post/5a76a9a76fb9a063451491c1