@SpringBootApplication
包含了@ComponentScan 表示程序启动是,自动扫描当前包及子包下所有类。
@Configuration 表示将该类作用springboot配置文件类
@EnableAutoConfiguration注解 表示程序启动时,自动加载springboot默认的配置。
@RestController
注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。
@Autowried
a.是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入;
b.根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier;
c.@Autowired有个属性为required,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错;
d.@Autowired可以作用在变量、setter方法、构造函数上。
@RequestMapping
将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。
@ResponseBody
注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML
@Resource
a.@Resource是JSR250规范的实现,需要导入javax.annotation实现注入。
b.@Resource是根据名称进行自动装配的,一般会指定一个name属性
c.@Resource可以作用在变量、setter方法上。
d.当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。
@Service
注解在类上,表示这是一个业务层bean
@PersistenceContext
注入的是实体管理器,执行持久化操作的,需要配置文件persistence.xml。
注入一堆保存实体类状态的数据结构,针对实体类的不同状态(四种,managedh或detached等)可以做出不同的反应(merge,persist等等),其实就是把数据从数据库里提出,然后在内存里处理的,再返回数据库的法则。
@Transactional
声明事务 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。
a.在service中加上 @Transactional,如果是action直接调该方法,会回滚,如果是间接调,不会回滚。
b.在service中的private加上 @Transactional,事务不会回滚。
c.Quartz中,execute直接调用加了 @Transactional方法,可以回滚;间接调用,不会回滚。
d.抛出异常xxxException,事务会回滚。
e.异步任务中,execute直接调用加了 @Transactional方法,可以回滚;间接调用,不会回滚。
f.在action中加上 @Transactional,不会回滚。切记不要在action中加上事务。
@PathVariable
带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
主要是根据请求方法进行类的区别
@Value
使用@value注解,从application.properties配置文件读取值,没读取到就用默认值 eg.@Value(value = "${user.userName}")