@Component
标志一个类是一个bean,Spring Boot will detect this class and create a bean instance from it
spring boot将会探测这个类并创建一个bean实例。
@PostConstructor
@PostConstruct annotated method is invoked after construction and injection of all dependencies
加了这个注解的方法将会在该bean所有依赖的注入和构造完成后触发。
@bean
When using parameters in a @Bean annotated method, those will automatically be resolved; and when injecting a collection, Spring will automatically detect all instances of the beans required and use that to invoke the calculator factory method.
在一个加了@bean注解的方法中,所有的参数均会被自动处理(实例化),当注入一个集合时,Spring将会探测所有的bean实例,然后加入集合中。
@AutoWired
When annotating the Calculator with @Component, Spring will detect it. The single constructor in the class will be used to construct it. When there are multiple constructors, annotate the one to use with @Autowired
当一个类有多个构造方法时,对要使用的构造方法加注解@AutoWired
这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。
@Component负责创建实例(也就是bean)并存入IOC容器,@Autowired取出实例注入到引用上。
@Value("${lhs}")
Spring would try to detect a property named lhs and use the value. You could also specify a default value by adding a semicolon. With @Value("${lhs:12}"), if no value can be found it will use 12. If there is no default value specified, an IllegalArgumentException will be thrown for missing properties.
Spring将会探测并使用一个叫lhs的属性值,r你也可以设置一个默认值,如果没有在Properties文件中找到将会使用默认值,这种情况下如果没有默认值将会报错 IAE。
@ImportResource
@PropertyResource
@Component
, @Service
, @Controller
, @Repository
是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理 @Component
是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能 @Repository
注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。 @Controller
层是spring-mvc的注解,具有将请求进行转发,重定向的功能。 @Service
层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。