springboot中得注解_Spring以及SpringBoot中的常用的注解小结

2023-04-10 14:19:47

一、注解的基本概念

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开发的基本注解;最重要的还是活学活用,记在脑海里;

  • 作者:楽月
  • 原文链接:https://blog.csdn.net/weixin_42363501/article/details/112944049
    更新时间:2023-04-10 14:19:47