@configuration @Component @Repository @Controller
Posted 再等三分钟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@configuration @Component @Repository @Controller相关的知识,希望对你有一定的参考价值。
@configuration注解标注在类上,相当于把该类作为Spring的xml配置文件中的<beans>,使用注解来代替Spring中的bean配置
下面是@configuration定义:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Configuration /** * Explicitly specify the name of the Spring bean definition associated * with this Configuration class. If left unspecified (the common case), * a bean name will be automatically generated. * <p>The custom name applies only if the Configuration class is picked up via * component scanning or supplied directly to a @link AnnotationConfigApplicationContext. * If the Configuration class is registered as a traditional XML bean definition, * the name/id of the bean element will take precedence. * @return the specified bean name, if any * @see org.springframework.beans.factory.support.DefaultBeanNameGenerator */ String value() default "";
@Configuration可理解为用spring的时候xml里面的<beans>标签
@Bean可理解为用spring的时候xml里面的<bean>标签
从上面@configuration定义看,@configuration也是@Component的扩展,
@Component :定义Spring管理Bean
@Repository 是@Component扩展,通过注解在Dao层的类
@Service 是@Component扩展,通常注解在Service层实现的类。
@Controller:是@Component扩展,通常注解在表现层web层。
这些注解的的作用:
为了避免使用大量Xml配置的方式来注入Bean,Spring有自动扫描注入的方式,上面注解的类会自动被纳入Spring容器管理中,
以上是关于@configuration @Component @Repository @Controller的主要内容,如果未能解决你的问题,请参考以下文章
为啥@Autowired 在@Configuration 内部没有@Component 工作
Spring Boot 2 - 在@Configuration 之前加载@Component