注解机制详解

cpddzz / 2023-08-14 / 原文

主要的作用

  • 生成文档,通过代码里标识的元数据生成javadoc文档。
  • 编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。
  • 编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。
  • 运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例。

注解是一个接口,一个继承自Annotation的接口。 里面每一个属性,其实就是接口的一个抽象方法。

 

@SpringBootApplication 

定义在main方法入口类处,用于启动sping boot应用项目

@Value

application.properties   定义属性,直接使用@Value注入即可

@ConfigurationProperties(prefix="person")

可以新建一个properties文件,ConfigurationProperties的属性prefix指定properties的配置的前缀,通过location指定properties文件的位置

@EnableConfigurationProperties

用@EnableConfigurationProperties注解使 @ConfigurationProperties生效,并从IOC容器中获取bean。

@RestController

组合@Controller和@ResponseBody,当你开发一个和页面交互数据的控制时

@RequestMapping("/api2/copper")

用来映射web请求(访问路径和参数)、处理类和方法,可以注解在类或方法上。注解在方法上的路径会继承注解在类上的路径。

produces属性: 定制返回的response的媒体类型和字符集,或需返回值是json对象

@RequestParam   

获取request请求的参数值

@ResponseBody

支持将返回值放在response体内,而不是返回一个页面。比如Ajax接口,可以用此注解返回数据而不是页面。此注解可以放置在返回值前或方法前。

@Bean  

@Bean(name="bean的名字",initMethod="初始化时调用方法名字",destroyMethod="close")

定义在方法上,在容器内初始化一个bean实例类。

@Service 用于标注业务层组件

@Controller 用于标注控制层组件(如struts中的action)

@Repository 用于标注数据访问组件,即DAO组件

@PathVariable   用来获得请求url中的动态参数

@Autowired

在默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出 BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。

当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring: 在找不到匹配 Bean 时也不报错

https://blog.csdn.net/ethunsex/article/details/66475792

 

@Override注解详解

·         帮助自己检查是否正确的重写了父类中已有的方法

·         告诉读代码的人,这是一个重写的方法

Service注解

@Service 注解是 Spring Framework 中的一种注解,它标识了这个类是一个业务逻辑层的服务 Bean。这意味着当 Spring 应用启动时,该 Bean 会被自动创建并加入到 Spring 应用上下文中。

简而言之,@Service 注解是一种用于标记服务层 Bean 的注解,是在 Spring Boot 应用中实现业务逻辑复用的重要方法之一。

注解@JsonIgnoreProperties

https://blog.csdn.net/m0_46069861/article/details/108848223

https://blog.csdn.net/weixin_43272781/article/details/105246784

 

类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

 

 

@Transactional注解
@Transactional
实质是使用了 JDBC 的事务来进行事务控制的
@Transactional
基于 Spring 的动态代理的机制