spring使用注解开发
1.前提
步骤1:
要使用注解开发,就必须要保证AOP包的导入
步骤2:
xml文件添加context约束
步骤3:
配置注解的支持 <context:annotation-config/>
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd"><!-- 新增 -->
<context:annotation-config/><!-- 新增 -->
</beans>
步骤4:
添加扫描包的支持<context:component-scan base-package="com.wq.pojo"/>
指定要扫描的包,这个包下的注解就会生效。
1 Bean
2 属性注入
3 衍生的注解
4.自动装配
1.@Autowired
@Autowired
可以直接在属性上用 默认byType方式- 使用
@Autowired
可以不用编写set方法- 如果自动装配的环境较为复杂,自动装配无法通过一个
@Autowired
注解完成的时候我们可以添加一个@Qualifier(value = "dog1")
注解来配合指定唯一的Bean对象注入
2.@Resource
@Resource
也能实现自动装配,但不是spring的注解,是jdk自带的注解,jdk8后取消了
@Autowired
与@Resource
区别
- 都是用来自动装配的,都可以放在属性字段上面。
@Autowired
通过byType实现,而且必须要求这个对象存在,常用@Resource
默认通过byName方式实现,如果找不到名字,就会通过byType实现,常用- 执行顺序不同:
@Autowired
通过byType方式实现,@Resource
默认通过byName方式实现