如题所述
spring框架中,我们通常使用@Controller注解来声明一个bean。
用@Component(默认单例模式)
Spring管理Bean的方法就是修汽车的方式。我们在需要将一个类变成一个Bean被Spring可以注入的时候加上注解零件@Conmonent,那么我们就可以在加载Bean的时候把他像零件一样装配:wrench:到这个IOC汽车上了
Spring注解方式管理Bean
1、组件扫描
大家不要对组件这个词感到陌生,在Spring中,一个类可以被称为Bean,也被称为一个组件,回想一下,在之前,我们如何将一个组件注册到IOC容器中呢?没错,我们需要写一段配置。
例如:为了让大家从繁琐的配置中解脱出来,Spring提供了一种基于注解的管理方式,Spring提供了以下注解用来注册一个组件:1.@Component2.@Controller3.@Service4.@Repository。
这四个注解都可以用来注册一个组件,不过每个注解都有其意义,比如@Controller,它是用来注册一个前端控制器的,我们将在SpringMVC中对其进行详解;而@Service是用来注册一个服务层对象的;@Repository是用来注册一个持久层对象的,我们从容器中取出所有的组件,看看注册是否成功了。
2、运行结果
可以看到我们的组件确实注册到Spring中了,剩下的是一些Spring内置的组件,我们无需关系。
context:component-scan标签是用来进行组件扫描的,其中base-package属性用于配置需要扫描的包,一般情况下我们会扫描项目的顶包,即:最外层的包,这样所有项目中的组件都会被扫描到并注册。
事实上,@Component、@Controller、@Service、@Repository四个注解的作用是完全一样的,你也可以在组件上随意地使用它们,比如:这是完全没有问题的,因为@Service、@Controller、@Repository注解是由@Component注解衍生出来的,但为了规范,还是建议将注解添加到指定的组件上。