JAVA部分注解功能说明

  • @Autowired

自动装配(产生对象)

组件和组件相互调用的时候,自动从ioc中取出来需要用的组件。(调用对象
比如Service,Controller,Dao的关系,这三个组件都分别加上了注册的注解:@Service,@Controller,@Component,ioc中已经有了注册信息,但是Service要用到Dao操作数据,所以在Service中的Dao头上就要用@Autowired来给Dao自动赋值,来供Service用,同理,Controller中也要用到Service,那么就要在Service上边加上@Autowired

  • @AllArgsConstructor

自动生成一个包含所有参数的构造函数。

或者自动装配每个字段。

  • @Component

注解表明一个类会作为组件类,并告知Spring要为这个类创建bean,

使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean。(相当于创建对象

  • @Bean

是一个注解,用于将一个方法标记为Spring容器中的一个Bean。具体来说,@Bean注解可以用于方法上,该方法返回一个对象,该对象将被Spring容器管理和提供给其他程序组件使用,让IOC容器知道这个组件存在。(相当于创建对象) 

@Component与@Bean的区别

@Component(@Controller、@Service、@Repository)通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。

而@Bean注解通常是我们在标有该注解的方法中定义产生这个bean的逻辑。

@Component 作用于类,@Bean作用于方法。

相同点:两者的目的是一样的,都是注册bean到Spring容器中。不同点:@Component和@Bean都是用来注册Bean并装配到Spring容器中,但是Bean比Component的自定义性更强。可以实现一些Component实现不了的自定义加载类。

@Bean的使用
@Bean 注解作用在方法上
@Bean 指示一个方法返回一个 Spring 容器管理的 Bean
@Bean 方法名与返回类名一致,首字母小写
@Bean 一般和 @Component 或者 @Configuration 一起使用
@Bean 注解默认作用域为单例 singleton 作用域,可通过 @Scope(“prototype”) 设置为原型作用域

你可能感兴趣的:(JAVA部分注解功能说明)