Spring-boot,Spring-mvc,Spring-jpa,常用注解

常用注解

JPA

@Transactional

@Transactional 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义,虽然 @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为,即使被调用方法使用@Transactional注解进行修饰。http://www.cnblogs.com/yepei/p/4716112.html

@Modifying

1、在@Query注解中编写JPQL实现DELETE和UPDATE操作的时候必须加上@modifying注解,以通知Spring Data 这是一个DELETE或UPDATE操作。2、UPDATE或者DELETE操作需要使用事务,此时需要 定义Service层,在Service层的方法上添加事务操作。3、注意JPQL不支持INSERT操作。http://www.mamicode.com/info-detail-1809150.html

@Query

@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。http://blog.csdn.net/lw_power/article/details/51296131

@Data

Lombok 插件注解,主要用来自动生成Get Set方法及构造函数

@Entity

JPA框架的注解,表示是一个实体类

@Table(name="XXX")

JPA框架的注解,表示是一个数据库表

@Id

JPA框架的注解,表示是一个数据库表的主键,且非空

@GeneratedValue(strategy= GenerationType.IDENTITY)

JPA框架的注解,表示数据库表的主键是自增长

@JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")

Json格式的时间注解,

@Transient

JPA框架的注解,表示对应实体的属性不在表里面

@Column(name = "XXX")

JPA框架的注解,表示是一个数据库表的一个列

@Configuration

Spring-boot框架,表示获取全局配置

@EnableJpaRepositories(basePackages = "xxx.xxx.xxx")

Srping JPA的代码配置,用于取代xml形式的配置文件,http://www.cnblogs.com/kaihe/p/4707995.html

@EnableTransactionManagement

Spring框架,启用注解式事务管理,http://cache.baiducontent.com/c?m=9d78d513d9d447ad4fece429514587384e4381137a9783493e87c20ec83907564616bce87b7145538c92202115e80902e5aa7034751421c486d5d21981f8d5747bdf7b61671cf11a548452f8dc4652907dcf47b9f144b2a7f03190afd8d3dd&p=8b2a9711ce9711a05bed95221e598b&newp=8b2a9737829a02ff57ee947f5b47c1231610db2151d6c44324b9d71fd325001c1b69e7bd21281404d3c57a6504a5495ee1f23674341766dada9fca458ae7c45a7bd164&user=baidu&fm=sc&query=%40EnableTransactionManagement&qid=c2313b2e00015728&p1=8

@Autowired

它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法,http://blog.csdn.net/heyutao007/article/details/5981555

@Bean(name = "XXX")

@Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法,并且交给Spring容器管理;从这我们就明白了为啥@Bean是放在方法的注释上了,因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,剩下的你就别管了,总结的内容:1、凡是子类及带属性、方法的类都注册Bean到Spring中,交给它管理;2、@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean

@Profile("!build-test")

与maven中的profile很相似,通过配置来改变参数。例如在开发环境与生产环境使用不同的参数,可以配置两套配置文件,通过@profile来激活需要的环境,但维护两套配置文件不如maven中维护一套配置文件,在pom中通过profile来修改配置文件的参数来的实惠,http://blog.csdn.net/hj7jay/article/details/53634159

API

@SpringBootApplication(scanBasePackages = "XXX.XXX.XXX", exclude = {ErrorMvcAutoConfiguration.class})

@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。http://blog.csdn.net/u013473691/article/details/52353923 http://412887952-qq-com.iteye.com/category/356333?page=6

@EnableWebMvc

When you're using Java code (as opposed to XML) to configure your Spring application, @EnableWebMvc is used to enable Spring MVC. If you're not already familiar with Spring's support for Java configuration, this is a good place to start.@EnableWebMvc is equivalent to in XML. It enables support for @Controller-annotated classes that use @RequestMapping to map incoming requests to a certain method. You can read detailed information about what it configures by default and how to customise the configuration in the reference documentation.

@RestController

官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。例如:本来应该到success.jsp页面的,则其显示success.2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解,http://blog.csdn.net/gg12365gg/article/details/51345601

@RequestMapping("/api/articleFavorite")

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。http://www.cnblogs.com/qq78292959/p/3760560.html

@Resource

@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定, 如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。http://bhdweb.iteye.com/blog/1663907

@RequestParam

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取,http://825635381.iteye.com/blog/2196911

@GetMapping("/newMessage")

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。http://blog.csdn.net/webzhuce/article/details/53319468

@PostMapping("/add")

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。该注解将HTTP POST 映射到特定的处理方法上。http://blog.csdn.net/webzhuce/article/details/53319468

@RequestBody Pager pager

@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。http://www.cnblogs.com/qiankun-site/p/5774300.html

自定义

@Admin

需要登录

@WithoutToken

不需要token

@VersionRange

版本验证

你可能感兴趣的:(Spring-boot,Spring-mvc,Spring-jpa,常用注解)