spring使用注解开发
文章目录
- 1.前提
- 1 Bean
- 2 属性注入
- 3 衍生的注解
- 4.自动装配
- 5 作用域
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
@Component
组件,放在类上,说明这个类被spring管理了,就是Bean
edge:
package com.wq.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class User {
@Value("光头强")
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2 属性注入
@Value
用于属性的注入,相当于<property name="name" value="光头强"/>
3 衍生的注解
@Componet
有几个衍生注解,我们在web开发时,会按照MVC三层架构分层。
- DAO层 -->
@Repository
- Service层 -->
@Service
- Controller层 -->
@Controller
这四个注解功能都是一样的,代表将某个类注册到Spring中,装配Bean
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方式实现
5 作用域
@Scope("singleton")
放在类上