• springboot常用注解分类整理


    本文整理了springboot常用的注解,以方便记忆和使用。在更好的理解该部分内容之前应该对Java注解和spring 控制反转(IoC)有一定的了解。

    @SpringBootApplication//这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。
    @EnableAutoConfiguration//允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。
    @ComponentScan//组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。
    @Configuration//用于定义配置类,指出该类是 Bean 配置的信息源,相当于传统的xml配置文件,一般加在主类上。
    

    entity层

    @Entity//表面该类是一个资源实体类
    @Table(name = "artical")//关联的表是artical,在类名和数据名对应不上时使用
    //@JsonIgnoreProperties 作用是 json 序列化时忽略 bean 中的一些不需要转化的属性
    @JsonIgnoreProperties(value = {"hibernateLazyInitializer", "hander", "fieldHandler"})
    //上面三个注解作用于实体类上
    

    mapper(DAO)层

    @Mapper //是 Mybatis 的注解,和 Spring 没有关系。使用mybatis时一定要有,否则 Mybatis 找不到 mapper。
    @Repository //用于标注数据访问组件,即DAO组件,是 Spring 的注解,用于声明一个 Bean。@Repository 可有可无,可以消去依赖注入的报错信息
    

    注意:这里存在一个问题。(参考博客:https://blog.csdn.net/Xu_JL1997/article/details/90934359?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control)

    仅仅使用@Mapper注解,我们会发现,在其他变量中依赖注入,IDEA 会提示错误,但是不影响运行。因为我们没有显式标注这是一个 Bean,IDEA 认为运行的时候会找不到实例注入,所以提示我们错误。尽管这个错误提示并不影响运行,但是看起来很不舒服,所以我们可以在对应的接口上用该注解添加 bean 的声明

    service层

    @Service //对应的是业务层Bean
    //@Service("userService")注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然后注入给Action:在Action只需要声明一个名字叫“userService”的变量来接收由Spring注入的"userService"即可 
    

    controller层

    @Controller //即在Controller类中,若想返回jsp或html页面,则不能用@RestController,只能使用@Controller
    @RestController //@RestController 相当于 @Controller + @ResponseBody;
    @RequestMapping //一个用来处理请求地址映射的注解;提供路由信息,负责URL到Controller中的具体函数的映射,可用于类或方法上。
    @ResponseBody //表示该方法的返回结果直接写入HTTP response body中
    @RequestParam //获取查询参数。即url?name=这种形式
    @PathVariable //获取路径参数。即url/{id}这种形式。
    

    其他实现bean注入的注解:

    @Component //spring中的一个注解,它的作用就是实现bean的注入。(@Service,@Repository,@Controller是该注解的衍生注解)
    @bean //@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。注解@Bean被声明在方法上,方法都需要有一个返回类型,而这个类型就是注册到IOC容器的类型。
    @Import //这种方法最为直接,直接把指定的类型注册到IOC容器里,成为一个java bean,可以把@Import放在程序的入口,它在程序启动时自动完成注册bean的过程。
    

    依赖注入:

    @AutoWired //
    @Resource(name=”name”,type=”type”) //没有括号内内容的话,默认byName。与@Autowired干类似的事;
    //相同点:@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。
    //不通点:
        //1、提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说就是由Spring提供;@Resource是由javax.annotation.Resource提供,即J2EE提供,需要JDK1.6及以上。
        //2、注入方式:@Autowired只按照byType 注入;@Resource默认按byName自动注入,也提供按照byType 注入;
        //3、属性:@Autowired按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用;@Resource有两个中重要的属性:name和type。name属性指定byName,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。
    
    参考博客:https://blog.51cto.com/qiangmzsx/1359952
    
  • 相关阅读:
    自然语言处理1-1 算法时间复杂度
    tensorflow2.0(1):简介
    基于PKCS#11的应用架构
    数字证书应用改造需求调研-2015-10-19
    签名验证工具Aloaha Sign
    PDF签名应用研究小结
    用bcp导sql server数据到excel文件
    无线网卡和有线网卡的嗅探模式的区别
    Tomcat6源代码在Eclipse里调试简要说明
    OpenLDAP 主从复制配置
  • 原文地址:https://www.cnblogs.com/variablex/p/14409605.html
Copyright © 2020-2023  润新知