zoukankan      html  css  js  c++  java
  • Spring以及SpringBoot中的常用的注解小结

    一、注解的基本概念

     Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。

    二、常用注解

    2.1 依赖注入相关的

    @Repository 作用于数据访问层,向Ioc容器中注入组件;
    @Service 作用于业务逻辑层,向Ioc容器中注入组件;
    @Controller 作用于表现层,向Ioc容器中注入组件;
    @Component 普通组件,可以被注入到spring容器进行管理;
    @Resource(name="") 默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。
    @Qualifier 按照名字注入
    @Autowired 自动注入,默认按照byType进行注入,如果发现找到多个bean,则又按照byname进行查询,如果还是多个则抛出异常;
    @ComponentScan 扫描特定路径下的类
    @Scope 类的生命周期,默认是单例模式,即scope="singleton"。另外scope还有prototype(每次获取Bean的时候会有一个新的实例)、
    request(表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效)、
    session(表示会话,即在同一个会话中,被注解的Bean都是使用的同一个Bean,不同的会话使用不同的Bean)、
    global session(每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。)作用域

    2.2 Aop相关的

    @Aspect 标识该类为切面类;
    @Pointcut 定义切入点表达式,例如@Pointcut("execution(* org.study.service.impl..*.*(..))")
    @Around 定义某个方法为环绕通知;
    @Before 前置通知;
    @AfterReturning 后置通知;
    @AfterThrowing 异常通知;
    @After 最终通知,不管异常还是正常,都会执行该通知;
    @EnableAspectJAutoProxy 开启AOP注解;

    2.3 读取配置相关

    (1)@Configuration@Bean :spring 3.0 引入的,和 @Configuration一起工作,用来表明当前类为一个配置类,可以在当前类中创建对象添加到ioc容器中,示例如:

    @Configuration
    public class ApplicationConfig {
        @Bean(value = "helloService")
        public HelloService helloService(){
            return new HelloService();
        }
    }
    

    @Value 读取配置文件的信息,例如:@Value("${jdbc.driver}");
    @Import 加载其他配置类,例如:@Import(value = JdbcConfiguration.class);
    @ImportResource 用来加载spring的配置文件,例如:@ImportResource("classpath:config.xml") ;
    @PropertySource@PropertySources 指定配置文件的信息,如:@PropertySource("classpath:jdbcConfig.properties")
    @ConfigurationProperties springboot中的读取配置文件的配置,例如:@ConfigurationProperties(prefix = "spring.datasource");

    2.4 springMvc相关的注解

    @Controller 标识当前类为一个控制器;
    @RestController 标识当前类为一个Rest风格的控制器,相当于@Controller和@RequestBody的结合;
    @RequestMapping 用来处理请求地址映射的注解;
    @RequestParam 绑定请求的参数值,例如:public String requestparam1(@RequestParam String username);
    @RequestBody 放在方法上表示返回json类型的数据,放在方法参数里表示接受json类型的数据,并格式化为对象;
    @PathVariable 可以用来映射URL中的占位符到目标方法的参数中;
    @RequestHeader 绑定请求头的信息到参数中;
    @CookieValue 用来获取cookie中的值;
    @EnableTransactionManagement 开启事务的支持;
    @Transactional 该方法或者类开启事务;

    2.6 测试相关

    @Runwith 指定一个运行器,如:@RunWith(SpringJUnit4ClassRunner.class);
    @Test 标注该方法为一个测试方法;

    2.7 缓存相关

    @EnableCache 启用缓存
    @Cacheable 添加缓存
    @Cacheput 更新缓存
    @CahceEvict 清除缓存
    @Caching 缓存的复杂组合,相当于多个注解的组合
    @CacheConfig 缓存的公共配置

    三、总结

      通过上述的注解,我们基本上掌握的spring开发的基本注解;最重要的还是活学活用,记在脑海里;
  • 相关阅读:
    RabbitMQ之Exchange(五)
    java classpath详解
    RabbitMQ之软件安装(一)
    RabbitMQ之概念介绍(二)
    RabbitMQ实战之Hello World(三)
    logback 控制台 自定义颜色
    hashmap
    linux学习记录 常用指令大全
    72.40个Android面试题(转载)
    break 的一个“高级用法”(转)
  • 原文地址:https://www.cnblogs.com/zqllove/p/13183588.html
Copyright © 2011-2022 走看看