推荐收藏系列:Spring boot 2.x注解Annotation大全(持续更新....)

  为了方便我们在日常开发注解的使用,本文将开发所需要的注解统一并进行归类起来,并结合用例进行解析,这样收藏起来以便日后使用。最主要本文将持续更新日常使用的注解,也可以评论中告知其他注解。

1依赖注入

1.1组件注解 @component

  @component,而其余 @Controller@Service@Repository都组合了@component注解,主要为便于使用者Class组件进行归类。默认加载IOC容器中的组件,容器启动会调用无参构造器创建对象,再进行初始化赋值等操作

注解 解析 用法
@Component 组件注解,使用了该注解会基于注释的配置和类路径扫描时,会自动扫描并加载Class到ICO容器中 注释在类上
@Controller 应用在MVC层(控制层)DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上 注释在类上
@Service 应用在service层(业务逻辑层 注释在类上
@Repository 应用在dao层(数据访问层) 注释在类上

1.2依赖注入注解

  @Autowired和@Inject、@Resource,可以与@Qualifier或者@Name配合使用,防止多实例注入时出错,以及值注入@Value。

注解 解析 用法
@Autowired 通过AutowiredAnnotationBeanPostProcessor类实现的依赖注入,默认是根据类型进行注入的,因此如果有多个类型一样的Bean候选者,则需要限定其中一个候选者,否则将抛出异常。 可注释在字段上,在方法上
@Inject 作用与@Autowired一样 可注释在字段上,在方法上、构造器上
@Resource 默认按照名称进行装配,名称可以通过name属性进行指定 可注释在字段上,在方法上
@Qualifier 限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如何选择候选者,可与@Autowired或者@Inject进行组合使用,进行精确注入 可注释字段上,在方法上、参数上以及注解中

1.3 作用域和生命过程

  @Scope,具有4个作用域可看[Scope作用域以及涉及的问题]以及生命周期过程处理@PostConstruct、@PreDestroy 。

注解 解析 用法
@Scope 具有4个作用域singleton,prototype,session,request,默认为singleton单例模式 可注释在Class创建时
@PostConstruct 相当于init-method,使用在方法上,当Bean初始化时执行 可注释在方法上
@PreDestroy 相当于destory-method,使用在方法上,当Bean销毁时执行 可注释在方法上

1.4 章节用例(结合1.1、1.2、1.3小节)

@Service //组件注入,注明为service组件
@Scope("prototype")//声明Scope为Prototype
public class UseFunctionService {
    
    @Autowired //默认按type注入
    @Qualifier("functionService") //精确注入
    FunctionService functionService;
    @Resource(name="baseDao")//默认按name注入,可以通过name和type属性进行选择性注入
    private BaseDao baseDao;
    @Inject
    @Qualifier("userServiceImpl") //精确注入  
    public IUserService userService;  
    
    @PostConstruct//执行完构造函数后执行
    public postConstruct(){
        System.out.println("postConstruct");
    }
    @PreDestroy//在销毁Bean前执行
    public perDestroy(){
         System.out.println("perDestroy");
    }
    @Autowired   
    public void setUserDao(@Qualifier("userDao") UserDao userDao) {   
     this.userDao = userDao;   
    }  

    public String SayHello(String word){
        return functionService.sayHello(word);
    }
}

2. 配置注解

2.1 @Configuration配置注解

  @Configuration可替换xml配置文件进行配置。被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。可与@PropertySource一起使用。
@Configuration作为元注解延伸了@SpringBootConfiguration

注解 解析 用法
@Configuration 配置类注解,可以与@Beae、@PropertySource一起使用,进行配置 注释在类、接口、枚举上
@SpringBootConfiguration 组合注解,@Configuration配置、@EnableAutoConfiguration启用自动配置、@ComponentScan默认扫描@SpringBootApplication所在类的同级目录以及它的子目录 可注解在类上
@AutoConfigureAfter 在指定的自动配置类之后再配置 可注解在类上

2.2扫描注解

  @ComponentScan注解,被@Configuration注解标注的类上面,涉及了@filter过滤器注解

注解 解析 用法
@ComponentScan 定义扫描的路径&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值