上一章节主要讲述了基于xml配置使用IOC,这章节是纯注解使用IOC
1、导入spring相关依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
</dependencies>
2、创建一个配置类添加以下注解
- @Configuration:声明是一个配置类
- @ComponentScan:开启注解扫描,需要配置包扫描的包路径,只要配置上这个,才能开启注解。
@Configuration
@ComponentScan("com.gzl")
public class SpringConfiguration {
}
3、注解创建对象
- @Component: 用于把当前类对象存入spring容器中
- @Controller:一般用在表现层
- @Service:一般用在业务层
- @Repository:一般用在持久层
- @Configuration:一般用在配置类
以上四个注解他们的作用和属性与Component是一模一样。
只不过通过注解可以更清楚的知道这个类是干什么的!
@Repository("accountDao")
public class AccountDaoImpl implements IAccountDao {
}
4、注入使用对象
- @Autowired:自动按照类型注入,这里的类型指的是变量类型,当类型找不到的时候他会自动切换变量名称也就是id,去容器当中寻找对应的对象。
- @Resource:直接按照bean的id注入
- @Qualifier:在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用。但是在给方法参数注入时可以,他不能单独给类成员使用所以得结合Autowired来使用,实际的效果就是和@Resource是一样的
- @Value:用于注入基本类型和String类型的数据,并且他是支持Spring的el表达式的
@Service("accountService")
public class AccountServiceImpl implements IAccountService{
@Autowired
private IAccountDao accountDao;
}
5、初始化容器
6、总结
以上就是我们在使用SpringIOC过程当中常用的注解,以及使用SpringIoc注解开发的一个整体流程。
学习Spring的IOC首先我们要理解SpringIOC的容器,这个容器我们可以直接理解为一个map,就是存储对象使用的,也就是我们需要用对象的时候直接可以从容器当中获取。
注解使用对象的话,就是我们常说的DI依赖注入,也就是我只需要写一个变量类型+变量名称+注解,剩余的都是Spring来帮我们做,Spring会根据注解然后去帮我们从容器当中寻找对应的对象,然后实例化上去,这个时候我们就可以真正的去使用这个对象当中的内容了。
常见的面试题
@Autowired和@Resource有什么区别
我个人认为哈这个问题也是可以直接看出来你懂不懂IOC容器。