上次已经说到了,如何使用java代码向spring容器中注册bean,但好像发现无论是使用xml文件还是java代码,都是我们一个一个bean的进行手动注册,这样就比较繁琐,所以有什么方法可以简化吗?现在就来了解一波。
一、组件扫描/包扫描
注解名 | 用途 |
@Repository | 一般用于dao层的类 |
@Service | 一般用于service层的类 |
@Controller | 一般用于servlet层的类 |
@Component | 一般用于其他不好归类的类 |
目前来说,这四 个注解在技术层面没有区别,但是根据spring官方来说,未来的版本可能会有功能上的区别,所以大家们也都习惯性的这样用。
接下来就可以进行包扫描了,可以使用java配置类来扫描,也可以使用xml配置文件来扫描。
要是使用java配置类包扫描的话,就得在java配置类上加一个@ComponentScan的注解
UserDao
package com.qfedu.demo.dao;
import org.springframework.stereotype.Repository;
/**
* 可以直接在类上加注解,自动将当前类注册到 Spring 容器中
*
* @Controller:这个一般加在视图层,也就是 servlet 层
* @Service:这个注解一般加在业务层,也就是 service 层
* @Repository:这个注解一般加在 dao 层
* @Component:对于一些身份不好归类的 Bean,使用这个注解
*
* 目前来说,这四个注解在代码实现层面没有区别
*
* @Repository 表示将当前类注册到 Spring 容器中去,默认情况下,bean 的名称是类名首字母小写,当然也可以在 @Repository 注解中进行配置
*
* @Repository("ud") 表示注入到 Spring 容器中的 Bean 的名称为 ud
*/
@Repository
public class UserDao {
public String say(){
return "hello";
}
}
UserService
package com.qfedu.demo.service;
import com.qfedu.demo.dao.UserDao;
import org.springframework.stereotype.Service;
@Service
public class UserService {