springboot中得注解_Spring以及SpringBoot中的常用的注解小结

一、注解的基本概念

Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。

二、常用注解

2.1 依赖注入相关的

@Repository 作用于数据访问层,向Ioc容器中注入组件;

@Service 作用于业务逻辑层,向Ioc容器中注入组件;

@Controller 作用于表现层,向Ioc容器中注入组件;

@Component 普通组件,可以被注入到spring容器进行管理;

@Resource(name="") 默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。

@Qualifier 按照名字注入

@Autowired 自动注入,默认按照byType进行注入,如果发现找到多个bean,则又按照byname进行查询,如果还是多个则抛出异常;

@ComponentScan 扫描特定路径下的类

@Scope 类的生命周期,默认是单例模式,即scope="singleton"。另外scope还有prototype(每次获取Bean的时候会有一个新的实例)、

request(表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效)、

session(表示会话,即在同一个会话中,被注解的Bean都是使用的同一个Bean,不同的会话使用不同的Bean)、

global session(每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。)作用域

2.2 Aop相关的

@Aspect 标识该类为切面类;

@Pointcut 定义切入点表达式,例如@Pointcut("execution(* org.study.service.impl..*.*(..))");

@Around 定义某个方法为环绕通知;

@Before 前置通知;

@AfterReturning 后置通知;

@AfterThrowing 异常通知;

@After 最终通知,不管异常还是正常,都会执行该通知;

@EnableAspectJAutoProxy 开启AOP注解;

2.3 读取配置相关

(1)@Configuration、@Bean :spring 3.0 引入的,和 @Configuration一起工作,用来表明当前类为一个配置类,可以在当前类中创建对象添加到ioc容器中,示例如:

@Configuration

public class ApplicationConfig {

@Bean(value = "helloService")

public HelloService helloService(){

return new HelloService();

}

}

@Value 读取配置文件的信息,例如:@Value("${jdbc.driver}");

@Import 加载其他配置类,例如:@Import(value = JdbcConfiguration.class);

@ImportResource 用来加载spring的配置文件,例如:@ImportResource("classpath:config.xml");

@PropertySource 和 @PropertySources 指定配置文件的信息,如:@PropertySource("classpath:jdbcConfig.properties");

@ConfigurationProperties springboot中的读取配置文件的配置,例如:@ConfigurationProperties(prefix = "spring.datasource");

2.4 springMvc相关的注解

@Controller 标识当前类为一个控制器;

@RestController 标识当前类为一个Rest风格的控制器,相当于@Controller和@RequestBody的结合;

@RequestMapping 用来处理请求地址映射的注解;

@RequestParam 绑定请求的参数值,例如:public String requestparam1(@RequestParam String username);

@RequestBody 放在方法上表示返回json类型的数据,放在方法参数里表示接受json类型的数据,并格式化为对象;

@PathVariable 可以用来映射URL中的占位符到目标方法的参数中;

@RequestHeader 绑定请求头的信息到参数中;

@CookieValue 用来获取cookie中的值;

@EnableTransactionManagement 开启事务的支持;

@Transactional 该方法或者类开启事务;

2.6 测试相关

@Runwith 指定一个运行器,如:@RunWith(SpringJUnit4ClassRunner.class);

@Test 标注该方法为一个测试方法;

2.7 缓存相关

@EnableCache 启用缓存

@Cacheable 添加缓存

@Cacheput 更新缓存

@CahceEvict 清除缓存

@Caching 缓存的复杂组合,相当于多个注解的组合

@CacheConfig 缓存的公共配置

三、总结

通过上述的注解,我们基本上掌握的spring开发的基本注解;最重要的还是活学活用,记在脑海里;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.net MVC 的一些总结(二)——图片显示

这里实现的是,如下图片所示的效果: 当然,当你看的下图的时候,请不要自己想当然的认为是简单的html布局!!! (1)业务说明:图片地址是数据库里存的,图…

Spring整合基础

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适…

最长子串(FZU2128)

最长子串 Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice FZU 2128Description 问题很简单,给你一个字符串s,问s的子串中不包含s1,s2...sn的最长串有多长。Input 输入包含多组数据。第一行为…

微信小程序开发起步

刚开发开发小程序的小伙伴可以参考下面的帖子: https://cloud.tencent.com/developer/article/1190821

virsh 网络设置_KVM使用Network Filters进行虚拟机网络管理 | leon的博客

1.1 Network Filters介绍Network filtering XML为虚拟化系统管理员提供了一种网络流量的过滤规则,系统管理员可以通过配置过滤参数实施和管理对虚拟机网络流量的接受和转发,由于过滤规则不能绕过直接进入虚拟机内,使得一个filter对虚拟用户的…

java 布局管理器_有时在Java中,一个布局管理器是不够的

java 布局管理器在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器。 这通常不是问题,被认为是几乎所有人类已知语言的所有UI开发的常规做法。 但是,大多数情况下,对于UI中的每个面板…

支付宝支付、微信支付(最详细教程)

对接支付宝支付接口,官方文档已经写的很清楚了,但是也有很多像我一样的小白,第一次对接支付宝支付接口,会有些迷茫,所以我在此写下这篇文章,给我和我一样的同学,一点思路吧。 第一步&#xff1…

Lintcode: O(1) Check Power of 2

Using O(1) time to check whether an integer n is a power of 2. Example For n4, return trueFor n5, return falseChallenge O(1) timeTags Expand 这道题考察bit manipulation. 1的个数只能有1个才是power of 2. 主要是要注意Integer.MIN_VALUE,这个只有一个1…

降雨插值_ArcGIS计算土壤侵蚀模数(二)降雨侵蚀力因子R计算

本次采用中国土壤流失方程CSLE计算土壤侵蚀模数,计算公式为:ARKLSBET式中,式中:A—土壤侵蚀模数。thm-2a-1;R—降雨侵蚀力因子,MJmmhm-2h-1a-1;K—土壤可蚀性因子,thm2hhm-2MJmm-1&a…

购买阿里云ECS服务器忘记终端管理密码或者没有设置

自己开发一个APP,想把源码放到服务器上跑一跑,发现使用Xshell远程连接不上去,我记得买服务器的时候没有设置。 一般有两种方法: 1.买服务器的时候,阿里会给你发一份邮件,邮件里面有,这个是官方的说法,我是公司CTO,账号是老板开的,根本不可能看到邮件,所以对我来说不…

mustache,用{{}}获取值

{{}}是属于java mustache controller类设置保存对象值在cars-common中有引入mustache.js&#xff0c;web再引入cars-common。jar包<bean id"viewResolver" class"com.fw.cars.common.infra.web.context.mustache.MustacheViewResolver">转载于:https…

输出空格隔开换行_【前端干货】CSS 的空格处理

一空格规则HTML 代码的空格通常会被浏览器忽略。<p>◡◡hello◡◡world◡◡</p>上面是一行 HTML 代码&#xff0c;文字的前部、内部和后部各有两个空格。为了便于识别&#xff0c;这里使用半圆形符号◡表示空格。浏览器的输出结果如下。hello world可以看到&#x…

宝塔面板绑定域名导致无法访问

用这个命令rm -f /www/server/panel/data/domain.conf删除绑定域名后&#xff0c; 就能用ip端口进入面板了&#xff0c;以后还是不要绑定域名了 主要是因为我手残。 看重点&#xff0c;我是绑定了域名&#xff0c;用域名也无法访问。 现在终于进去啦

【转】在.Net中关于AOP的实现

原文地址&#xff1a;http://www.uml.org.cn/net/201004213.asp 一、AOP实现初步 AOP将软件系统分为两个部分&#xff1a;核心关注点和横切关注点。核心关注点更多的是Domain Logic&#xff0c;关注的是系统核心的业务&#xff1b;而横切关注点虽与核心的业务实现无关&#xff…

宝塔访问域名访问不到

首先说明一点&#xff0c;我这个问题不是宝塔面板绑定域名的那种情况。 浏览器输入域名会报上面的错误&#xff0c;经过各种尝试&#xff0c;发现是安全组没有放开&#xff0c;在阿里云控制台添加一个80/80的通用安全组规则即可&#xff0c;知道上行和下行的区别&#xff0c;打…

spring.jpa配置_使用JPA和Spring 3.1进行事务配置

spring.jpa配置1.概述 本教程将讨论配置Spring Transactions &#xff0c;使用Transactional批注和常见陷阱的正确方法 。 有关核心持久性配置的更深入讨论&#xff0c;请查看Spring with JPA教程 。 有两种不同的配置事务的方法– 批注和AOP –每种都有自己的优势–我们将在…

双千兆和双频千兆哪个好_关于千兆路由器的那些事儿!赶紧收藏

无线Wi-Fi已成为现代人生活、工作的标配&#xff0c;随着百兆乃至千兆的光纤网络普及&#xff0c;传统路由器已跟不上时代的速度了。不少用户的眼光已投向速度更快的千兆路由器&#xff0c;那么大家真的了解什么是千兆路由器吗&#xff1f;千兆路由器有哪几种&#xff1f;近期火…

宝塔常用的命令大全(直接上官网)

安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash ins…

华三ospf联动bfd_HCIE2020__路由交换专家__BFD综合实验

1.1.1 关于本实验本实验通过配置BFD与BGP协议联动及与VRRP协议联动&#xff0c;掌握BFD的功能和配置方法。1.1.2 实验目的理解BFD的工作原理。 掌握BFD与BGP联动的应用场景及配置方法。 掌握BFD与VRRP联动的应用场景及配置方法。1.1.3 实验组网介绍图1-1 BFD原理配置实验拓扑图…

struts2,实现Ajax异步通信

用例需要依赖的jar&#xff1a; struts2-core.jarstruts2-convention-plugin.jar&#xff0c;非必须org.codehaus.jackson.jar&#xff0c;提供json支持用例代码如下&#xff1a; 数据库DDL语句无 struts.xml1 <?xml version"1.0" encoding"UTF-8"?&g…