spring springmvc mybaits springboot 常用注解

spring常用注解:

@Component :用于标注一个普通的spring Bean类。

@Controller:用于标注一个控制器组件类。(控制层)

@Service:用于标注一个业务逻辑组件类。(service层)

@Repository:用于标注一个DAO组件类。(DAO层)

其中 @Component可以代替@Controller、@Service、@Repository三个注解,因为这三个注解是被@Component标注的。

 

@Autowired:按byType自动注入(需要注入的类上)

@Inject:不是spring注解,由JSR-330提供,@Inject 注解可以出现在三种类成员之前(构造方法,方法,属性),表示该成员需要注入依赖项。

@Resource:不是spring注解,由JSR-250提供,用于默认按byName自动注入。(需要注入的类上)

 

@Configuration: 用于声明当前类为配置类,相当于xml形式的Spring配置,其中内部组合了@Component注解,表明这个类是一个bean(类上)

@Bean: 用于注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)

 

@Aspect 用于声明一个切面,使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。(类上)

@After 在方法执行之后执行(方法上)
@Before 在方法执行之前执行 (方法上)
@Around 在方法执行之前与之后执行(方法上)

@PointCut 声明切点 (方法上)

@Scope 用于设置Spring容器如何新建Bean实例(方法上,需要有@Bean) 
其设置类型包括:

  Singleton (单例,一个Spring容器中只有一个bean实例,默认模式), 
  Protetype (每次调用新建一个bean), 
  Request (web项目中,给每个http request新建一个bean), 
  Session (web项目中,给每个http session新建一个bean), 
  GlobalSession(给每一个 global http session新建一个Bean实例)

@Value 为属性注入值(属性上) 

springmvc常用注解:

@RequestMapping: 用于映射Web请求,包括访问路径和参数(类或方法上)

@ResponseBody 用于支持将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或方法上)

@RequestBody 用于允许request的参数在request体中,而不是在直接连接在地址后面。(放在参数前)

@PathVariable 用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController 用于该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

@ControllerAdvice 用于通过该注解,我们可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上, 
这对所有注解了 @RequestMapping的控制器内的方法有效。

@ExceptionHandler 用于全局处理控制器里的异常

@InitBinder 用于设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。

@ModelAttribute 本来的作用是绑定键值对到Model里,在@ControllerAdvice中是让全局的@RequestMapping都能获得在此处设置的键值对。

mybaits、mybaits-plus常用注解:

@Select 简单查询

@Insert 简单插入

@Update 简单更新

@Delete 简单删除

 

@Options:能够设置缓存时间,能够为对象生成自增的key。

@Mapper注解:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类(接口类上面)
@MapperScan:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类(Springboot启动类上面添加)
@TableName( value ="<表名>)"):用于映射数据库的表名
@TableId( value =“数据库主键名称”):用于设置主键映射,value映射主键字段名

@TableField( value =“数据库对应字段名称”): 用于映射⾮主键字段,value 映射字段名

springboot常用注解:

@GetMapping:用于处理GET请求,从服务器获取特定资源

@PostMapping:用于处理POST请求,在服务器上创建一个新的资源
@PutMapping:用于处理PUT请求,更新服务器上的资源
@DeleteMapping:用于处理DELETE请求,从服务器删除特定的资源

以上这四个注解用于Restful风格编程

@ConfigurationProperties:用于读取配置信息并与bean绑定
@PropertySource:用于指定加载自定义的配置文件

@ControllerAdvice:用于注解定义全局异常处理类,包含@Component,所以可以被Spring扫描到
@ExceptionHandler:用于注解声明异常处理方法,表示遇到这个异常,就执行标注的方法

@Entity:用于声明数据库实体类

@Table:用于设置表名
@ld:用于声明一个字段为主键
@CeneratedValue:用于声明主键的生成策略
@Column:声明字段,经常用于属性名和表字段的映射
@Transient:用于指定不需要持久化的字段
@Lob:用于声明某个字段为大字段
@Enumerated:用于声明枚举类型的字段
@Modifying:用于加在DAO方法上,提示是修改操作
@Transactional:作用于类上时,表示所有该类的public方法都配置相同的事务属性信息;作用于方法上时,当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息
@ActiveProfiles:用于常作用于测试类上,用于声明生效的Spring配置文件

@Test声明一个方法为测试方法
@Transactional:用于被声明的测试方法的数据会回滚,避免污染测试数据
@WithMockUser:Spring Security提供的,用来模拟一个真实用户,并且可以赋予权限

@SpringBootApplication:等价于以默认属性使用@Configuration、@EnableAutoConfiguration、@ComponentScan
@Configuration:Spring Boot提倡基于Java的配置,相当于你之前在xml 中配置bean
@EnableAutoConfiguration:类级别的注解,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring
@ComponentScan:标注哪些路径下的类需要被Spring扫描

@ConditionalOnBean:配置了某个特定的Bean
@ConditionalOnMissingBean:没有配置特定的Bean
@ConditionalOnClass:Classpath里有指定的类
@ConditionalOnMissingClass:Classpath里没有指定的类
@ConditionalOnExpression:给定的SpEL表达式计算结果为true
@ConditionalOnJava:Java的版本匹配特定值或者一个范围值
@ConditionalOnJndi:参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDI lnitialContext
@ConditionalOnProperty:指定的配置属性要有一个明确的值
@ConditionalOnResource:Classpath里没有指定的资源
@ConditionalOnWebApplication:这是一个Web应用程序
@ConditionalOnNotWebApplication:这不是一个Web应用程序

守着安静的沙漠,等待着花开...