前期准备
- 添加依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
</dependencies>
分类介绍
用于创建对象
他们的作用就和XML配置中编写一个标签的功能一样
- @Component:
作用把当前标注的类对象存入spring容器
属性:value(用于指定bean的id.当不写时,默认为当前类名,且首字母小写)
-@Controller:表现层
@Controller
public class AccountController {
}
- @Service:业务层
@Service("accountService")
public class AccountServiceImpl implements IAccountService {
}
- @Repository:持久层
@Repository("accountDao")
public class AccountDaoimpl implements IAccountDao {
}
以上三个注解和Component功能一样,他们是spring框架为我们明确提供的三层注解,使三层对象更加清晰
用于注入数据
他们的作用就和xml配置中的bean标签中一样
- @Autowired:
作用: 自动按照类型注入。只要容器中有唯一的bean对象类型和要注入的类型匹配,则可以注入成功
如果IOC容器中没有任何bean类型和要注入的变量类型匹配则报错,如果发现多个和要注入的变量类型匹配,则会根据变量名匹配,如果都不匹配则注入失败
出现位置:可以是变量上,也可以是方法上
细节:setter方法就不是必须的了
@Autowired
private IAccountDao accountDao;
特别注意
@Autowired会在spring的核心容器IOC中查找数据类型相同的接口或者实现类, 如果IOC容器中没有任何bean类型和要注入的变量类型匹配则报错;如果只找到一个则直接注入;查找;如果发现多个和要注入的变量类型匹配,则会根据变量名匹配,如果都不匹配则注入失败。
- @Qualifier:
作用:在给类成员注入时不能按单独使用,是和Autowird组合使用,在按照类中注入的基础上再按照名称注入。但在给方法注入时可以单独使用。
属性:value:用于指定注入bean的id。
@Autowired
@Qualifier("accountDao")
private IAccountDao accountDao;
- @Resource:
作用:直接按照bean的id注入。可以独立使用
属性:name:用于指定bean的id.
@Resource(name = "accountDao")
private IAccountDao accountDao;
以上三个注入都只能注入其他bean类型数据,而基本类型和string类型无法使用上述注解,另外集合类型的注入只能使用XML来实现
- @Value
作用:用于注解基本类型和string类型的数据、
属性:
value:用于指定数据的值。他可以使用spring的SpEL表达(也就是spring中的el表达式)
SpEL表达式写法:${表达式}
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
用于改变作用范围
他们的作用就和bean标签中使用scope属性实现功能一样的
- @Scope:
作用:用于指定bean的作用范围
属性:value: 指定范围取值 常用取值: singleton , prototype等。
//@Bean(name = "runner")
@Scope("prototype")
public QueryRunner createQueryRunner(DataSource dataSource) {
return new QueryRunner(dataSource);
}
和生命周期相关(了解)
他们的作用就和bean标签中init-method和destroy-method的作用一样
- @PreDetory
作用:用于指定销毁方法 - @PreConstruct
作用:用于指定初始方法
特别注意:本文章是学习Spring视频教程 -IEDA版-4天-2018黑马SSM 所记录知识总结