目录
Bean的声明
注意
声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写
使用以上四个注解都可以声明bean,但在SpringBoot集成Web开发中,声明控制器bean只能使用@Controller或者@RestController
Bean组件扫描
小结
Bean的声明
- 要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一
注解 | 说明 | 位置 |
@Component | 声明bean的基础注解 | 不属于以下三类时,用此注解 |
@Controller | @Component的衍生注解 | 标注在控制器类上 |
@Service | @Component的衍生注解 | 标注在业务类上 |
@Repository | @Component的衍生注解 | 标注在数据访问类上(由于与Mybatis整合,用的少) |
即在三层架构中需要实行反转控制,建议使用对应的注解
具体如下:
上述两个注解达到的效果与@Component注解的效果是一样的
注意
-
声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写
- 上述EmpDaoA类的bean名称默认值如上
- 设置如下:
- 设置之后其名为daoA
-
使用以上四个注解都可以声明bean,但在SpringBoot集成Web开发中,声明控制器bean只能使用@Controller或者@RestController
Bean组件扫描
- 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描
- @ComponentScan注解虽然没有显示配置,但实际已经包含在启动类声明变量注解@SpringBootApplication中,默认的扫描范围是启动类所在包及其子包。
可以在启动类中设置扫描的范围,但是不建议怎么做,直接遵循SpringBoot项目结构的规范就可以了。
小结
声明bean的注解
- @Component、@Controller、@Service、@Repository
- @SpringBootApplication具有包扫描作用,默认扫描当前包及其子包