资讯专栏INFORMATION COLUMN

springboot注解总结

happyfish / 1105人阅读

摘要:解决注解不回滚检查你方法是不是的。之后新加入的注解,原来返回需要和配合。和为异步注解,放到方法上,表示调用该方法的线程与此方法异步执行,需要配合注解使用。是中的标注,是为了控制返回的字符串显示哪些字段。

@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。

@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置

@AutoConfigureAfter:在指定的配置类初始化后再加载 
@AutoConfigureBefore:在指定的配置类初始化前加载 
@AutoConfigureOrder:数越小越先初始化

@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

@Entity 对实体注释。任何Hibernate映射对象都要有这个注释

@Table声明此对象映射到数据库的数据表,通过它可以为实体指定表(table),目录(Catalog)和schema的名字。该注释不是必须的,如果没有则系统使用默认值(实体的短类名)。

@EnableScheduling开启计划任务

1@Scheduled:声明该方法是一个计划任务,fixedRate属性设置每隔固定时间执行
2cron属性:按照指定时间执行(11时28)cron事unix和类unix(linux)系统下的定时时间

@WebServlet,在 SpringBootApplication 上使用@ServletComponentScan 注解后,Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册,无需其他代码。

@Transactional

解决Transactional注解不回滚:
1. 检查你方法是不是public的。
2. 你的异常类型是不是unchecked异常。@Transactional(rollbackFor=Exception.class)
类似的还有norollbackFor,自定义不回滚的异常。
3. 数据库引擎要支持事务,如果是mysql,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的。
4. 是否开启了对注解的解析

5. spring是否扫描到你这个包,如下是扫描到org.test下面的包

@Controller 用来响应页面,@Controller必须配合模版来使用。

@RestController Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合。

@RequestBody 将接收的json数据装载到实体类中。

@RequestMapping 配置url映射

@PathVaribale 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解

@PostConstruct与@PreDestroy详解及实例

@PostConstruct注释的方法,会在构造方法之后,init方法之前进行调用。
只有一个方法可以使用此注释进行注解;
被注解方法不得有任何参数;
被注解方法返回值为void;
被注解方法不得抛出已检查异常;
被注解方法需是非静态方法;
此方法只会被执行一次;
PreDestroy 注释作为回调通知用于各方法,以表示该实例正处于被容器移除的过程中。用 PreDestroy 注释的方法通常用于释放它已持有的资源。

@PropertySource 注解可以从properties文件中,获取对应的key-value值,将其赋予变量;

@ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象。

@RunWith:这个是指定使用的单元测试执行类,这里就指定的是SpringJUnit4ClassRunner.class;

@webservice:

类上加上@WebService注解
@WebMethod注解声明了这个方法是要发布出去的方法

@Resource 默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来注入。它有两个属性是比较重要的:

①. name: Spring 将 name 的属性值解析为 bean 的名称, 使用 byName 的自动注入策略
②. type: Spring 将 type的属性值解析为 bean 的类型,使用 byType 的自动注入策略
注: 如果既不指定 name 属性又不指定 type 属性,Spring这时通过反射机制使用 byName 自动注入策略
@Resource 的装配顺序
  1. 如果同时指定了 name 属性和 type 属性,那么 Spring 将从容器中找唯一匹配的 bean 进行装配,找不到则抛出异常
    2. 如果指定了 name 属性值,则从容器中查找名称匹配的 bean 进行装配,找不到则抛出异常
    3. 如果指定了 type 属性值,则从容器中查找类型匹配的唯一的 bean 进行装配,找不到或者找到多个都会抛出异常
    4. 如果都不指定,则会自动按照 byName 方式进行装配, 如果没有匹配,则回退一个原始类型进行匹配,如果匹配则自动装配

@Autowried 默认是按照类型进行装配注入,默认情况下,它要求依赖对象必须存在,如果允许 null 值,可以设置它 required 为false。
  如果我们想要按名称进行装配的话,可以添加一个 @Qualifier 注解解决。

demo
@Autowried
@Qualifier("adminDAO")
private AdminDAO adminDAO;

@Async和@EnableAsync为异步注解,放到方法上,表示调用该方法的线程与此方法异步执行,需要配合注解使用。@EnableAsync放在启动类上,Async放在方法上。

@JsonInclude(Include.NON_NULL) 是springmvc中的标注,是为了控制返回的json字符串显示哪些字段。这里的设置是为null的字段不显示

@ConfigurationProperties(prefix = "sso") 可以在实体类中将properties文件的值注入到属性中。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69481.html

相关文章

  • 慕课网_《2小时学会SpringBoot》学习总结

    摘要:小时学会学习总结时间年月日星期六说明本文部分内容均来自慕课网。慕课网教学示例源码暂无。数据库操作下第六章事务管理事务管理只有查询的时候不加事务,其它任何操作都要加事务。第七章课程回顾课程回顾总结介绍安装配置的使用数据库操作 《2小时学会SpringBoot》学习总结 时间:2017年2月18日星期六说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示...

    aisuhua 评论0 收藏0
  • SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘

    摘要:概述约定大于配置的功力让我们如沐春风,在我之前写的文章从到也对比过和这两个框架,不过最终以超高的代码信噪比和易上手性让我们映像颇深。至于,我想在非时代大家应该不陌生吧,作用是配置容器,也即形式的容器的配置类所使用。 showImg(https://segmentfault.com/img/remote/1460000015822144); 概 述 SpringBoot 约定大于配置...

    Tecode 评论0 收藏0
  • SpringBoot自动配置原理

    摘要:开启自动配置功能后文详解这个注解,学过的同学应该对它不会陌生,就是扫描注解,默认是扫描当前类下的。简单来说,这个注解可以帮助我们自动载入应用程序所需要的所有默认配置。简单理解这二者扫描的对象是不一样的。 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面Spring的文章(以学习...

    Rainie 评论0 收藏0
  • 第二十九章:基于SpringBoot平台使用Lombok来优雅的编码

    摘要:还提供了全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,因为只有实体类才会存在构造函数。当然除了全部参数的构造函数,还提供了没有参数的构造函数,使用方式与一致。 Lombok对于Java偷懒开发者来说应该是比较中意的,恰恰笔者就是一个喜欢在小细节上偷懒来提高开发效率的人。所以在技术框架的海洋里寻找了很久才在GitHub开源平台上找到,而在这之前国外很多程序猿一直使用该框...

    fanux 评论0 收藏0
  • SpringBoot 动态代理|反射|注解|AOP 优化代码(一)-动态代理提供接口默认实现

    摘要:生产环境由注册中心,通过调用,其它环境直接通过直接通过调用。当然动态代理提供接口的默认实现只是演示,并没有什么实际内容。下一篇动态代理反射注解优化代码二反射 一、背景 在项目中需要调用外部接口,由于需要调用不同环境(生产、测试、开发)的相同接口(例如:向生、测试、开发环境的设备下发同一个APP)。 1.生产环境由SpringCloud注册中心,通过Feign调用, 2.其它环境直接通过...

    mj 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<