spring/java ---->记录和整理用过的注解以及spring装配bean方式
spring注解
@Scope:该注解全限定名称是:org.springframework.context.annotation.Scope。@Scope指定Spring容器如何创建Bean的实例,Singleton(spring默认的创建Bean实例的方式),Prototype,Request,Session,GlobalSession。
@Bean:该注解全限定名称是:org.springframework.context.annotation.Bean。在方法上使用该注解,表示方法返回值是一个Bean。和注解@Configuration使用可实现Java配置。
@ComponentScan:该注解全限定名称是:org.springframework.context.annotation.ComponentScan。自动扫描包名下所有使用了声明式注解的类,并注册为Bean。
@Configuration:该注解全限定名称是:org.springframework.context.annotation.Configuration。声明当前类是一个配置类。和注解@Bean使用可实现Java配置。
@PropertySource:该注解全限定名称是:org.springframework.context.annotation.PropertySource。指定配置文件的位置。
@Primary:该注解全限定名称是:org.springframework.context.annotation.Primary。注解在方法上。当按类型自动装配可能会导致多个候选者,@Primary可以实现优先选择特定的bean。
@Profile:该注解全限定名称是:org.springframework.context.annotation.Profile。注解在类或者方法上。实现在不同情况下实例化不同的Bean。可以实现根据环境的不同使用不同的配置。
@Conditional:该注解全限定名称是:org.springframework.context.annotation.Conditional。实现在满足一定条件的情况下创建一个特定的Bean。
@Async:该注解全限定名称是:org.springframework.scheduling.annotation.Async。可以注解在方法或者类上。表示该方法是异步的。
@EnableAsync:该注解全限定名称是:org.springframework.scheduling.annotation.EnableAsync。开启对异步任务支持。
@Scheduled:该注解全限定名称是:org.springframework.scheduling.annotation.Scheduled。注解在方法上。表示该方法是计划任务。
@EnableScheduling:该注解全限定名称是:org.springframework.scheduling.annotation.EnableScheduling。开启对计划任务支持。
@Value:该注解全限定名称是:org.springframework.beans.factory.annotation.Value。@Value注入各种资源,例如,字符串,配置文件,操作系统属性等。
@Autowired:该注解全限定名称是:org.springframework.beans.factory.annotation.Autowired。注入Bean。可在set方法或者属性上使用。
@Service:该注解全限定名称是:org.springframework.stereotype.Service。声明Bean。业务逻辑层使用。
@Repository:该注解全限定名称是:org.springframework.stereotype.Repository。声明Bean。持久层使用。
@Controller:该注解全限定名称是:org.springframework.stereotype.Controller。声明Bean。控制层使用。
@Component:该注解全限定名称是:org.springframework.stereotype.Component。声明Bean。组件,角色不明确。
@Enable* 开启某一项功能。
@EnableAspectJAutoProxy:开启Spring对AspectJ的支持。
@EnableAsync:开启对异步方法的支持。
@EnableScheduling:开启对计划任务的支持。
@EnableWebMvc:开启对web mvc的配置支持。
@EnableJpaRepositories:该注解全限定名称是:org.springframework.data.jpa.repository.config.EnableJpaRepositories。开启对Spring data Jpa repository的支持。
@EnableTransactionManagement:该注解全限定名称是:org.springframework.transaction.annotation.EnableTransactionManagement。开启注解式事务的支持。
@EnableCaching:开启注解式缓存的支持。
。。。
上面这些注解的共同特点是都是组合注解,都有一个@Import注解,用它来导入配置类
mvc
@EnableWebMvc:该注解全限定名称是:org.springframework.web.servlet.config.annotationEnableWebMvc。开启对web mvc的配置支持。
@RequestMapping:该注解全限定名称是:org.springframework.web.bind.annotation.RequestMapping。注解在类或者方法上。映射web请求路径。
@ResponseBody:该注解全限定名称是:org.springframework.web.bind.annotation.ResponseBody。注解在方法上或者返回值前。将返回的结果放在response中,而不是放在一个页面中。
@RequestBody:该注解全限定名称是:org.springframework.web.bind.annotation.RequestBody。注解在参数前面。将请求的参数放在request中,而不是放在url中。
@PathVariable:该注解全限定名称是:org.springframework.web.bind.annotation.PathVariable。注解在参数前面。获得url路径中的动态参数。
@RequestParam:该注解全限定名称是:org.springframework.web.bind.annotation.RequestParam。注解在参数前面。将url请求中的参数(key=value)赋值给方法中的形式参数。
@Controller:该注解全限定名称是:org.springframework.stereotype.Controller。声明Bean。控制层使用。
@RestController:该注解全限定名称是:org.springframework.web.bind.annotation.RestController。@ResponseBody和@Controller的组合注解。注解在类或者方法上。将返回的结果放在response中,而不是放在一个页面中。
全局处理
@ControllerAdvice:该注解全限定名称是:org.springframework.web.bind.annotation.ControllerAdvice。可以对控制器进行全局配置。
@ExceptionHandler:该注解全限定名称是:org.springframework.web.bind.annotation.ExceptionHandler。用于全局处理控制器的异常。
@ModelAttribute:该注解全限定名称是:org.springframework.web.bind.annotation.ModelAttribute。1、绑定键值对到model对象。2、让全局的RequestMapping获得此处设置的键值对。
test
@ContextConfiguration:该注解全限定名称是:org.springframework.test.context.ContextConfiguration。加载配置ApplicationContext。
@ActiveProfiles:该注解全限定名称是:org.springframework.test.context.ActiveProfiles。确定参与测试时活动的Profile。
@WebAppConfiguration :该注解全限定名称是:org.springframework.test.context.web.WebAppConfiguration。用来声明加载的ApplicationContext是一个WebApplicationContext。
java注解
JSR-250:
@PostConstruct:该注解全限定名称是:javax.annotation.PostConstruct。用于Bean的生命周期的操作。在构造方法执行之后执行。
@PreDestroy:该注解全限定名称是:javax.annotation.PreDestroy。用于Bean的生命周期的操作。在销毁方法执行之前执行。
@Resource:该注解全限定名称是:javax.annotation.Resource。注入Bean。可在set方法或者属性上使用。
JSR-330
@Inject:该注解全限定名称是:javax.inject.Inject。注入Bean。可在set方法或者属性上使用。
test(junit)
@RunWith:该注解全限定名称是:org.junit.runner.RunWith。在Junit环境下提供一个spring测试上下文环境。
@Test:该注解全限定名称是:org.junit.Test。注解在方法上。表示这是需要进行测试的。
@Before:该注解全限定名称是:org.junit.Before。注解在方法上。表示进行测试之前需要做的准备,加载配置文件等。
上面的注解所在的jar:
spring-context-4.3.18.RELEASE.jar
spring-beans-4.3.18.RELEASE.jar
spring-web-4.3.18.RELEASE.jar
spring-webmvc-4.3.18.RELEASE.jar
spring-test-4.3.18.RELEASE.jar
junit-4.12.jar
jsr250-api-1.0.jar
javaee-api-7.0.jar
spring装配方式
1、通过xml进行显式装配:xml文件+java文件
xml配置
<bean id="abc" class="a.b.C"/>
<bean id="xyz" class="x.y.Z">
<properpty name="c" ref="abc"/> <!--引用bean abc-->
</bean>
java文件:指定set方法
package x.y;
import a.b.C;
public class Z{ //注入类a.b.C
private C c;
public void setC(C c){
this.c = c;
}
}
2、通过注解方式装配bean
xml配置
<context:component-scan base-package="a.b,x.y"/> <!--开启注解扫描--> <bean id="abc" class="a.b.C"/> <bean id="xyz" class="x.y.Z"/> <!--没有引用bean abc-->
java文件
1 package x.y;
2
3 import a.b.C;
4 import org.springframework.beans.factory.annotation.Autowired;
5 public class Z{ //注入类a.b.C
6
7 private C c;
8
9 @Autowired //由@Autowired注入类C,方法级别上的注解???
10 public void setC(C c){
11 this.c = c;
12 }
13
14 }
2018-10-19 15:55:18
注解大pk
@Resources和@Autowired
@Resources
@Autowired
spring/java ---->记录和整理用过的注解以及spring装配bean方式的更多相关文章
- Spring常用注解,自动扫描装配Bean
1 引入context命名空间(在Spring的配置文件中),配置文件如下: xmlns:context="http://www.springframework.org/schema/con ...
- Spring学习(17)--- 三种装配Bean方式比较
基于XML配置 基于注解配置 基于Java类配置 Bean定义 <bean id="..." class="..." /> @Compone ...
- Java EE 学习(8):IDEA + maven + spring 搭建 web(4)- 用户管理
转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) ava E ...
- Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理
转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Jav ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- 我的Spring学习记录(五)
在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...
- java 面试题整理(不定期更新)
一.Java基础 1.Java面向对象的三个特征与含义 三大特征是:封装.继承和多态. 封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公 ...
- 《OD面试》Java面试题整理
一.面试考察点 1 主语言本身 2 数据库 3 算法 4 Spring/SpringMVC/MyBatis 5 项目经验 1)项目涉及到的技术点深挖: (1)考察候选人技术深度 (2)看候选人遇到问 ...
- 字节跳动Java研发面试99题(含答案):JVM+Spring+MySQL+线程池+锁
JVM的内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1. Java虚拟机栈:线程私有:每个方法在执行的时候会创建一个栈帧,存储了局部变量表, ...
随机推荐
- [No0000195]NoSQL还是SQL?这一篇讲清楚
随着大数据时代的到来,越来越多的网站.应用系统需要支撑海量数据存储,高并发.高可用.高可扩展性等特性要求. 传统的关系型数据库在应付这些已经显得力不从心,并暴露了许多难以克服的问题. 由此,各种各样的 ...
- 常用oracle hints
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...
- I2C驱动框架 (kernel-3.4.2)
先用韦老师的图: 注: 新版本内核的i2c驱动框架采用了 i2c_client -------> i2c_bus_type <-------- i2c_driver 框架 如 ...
- 保存退出vi编辑
保存命令按i进入编辑模式,编辑完成按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi:w file 将修改另外保存到file中,不退出vi:w! 强制保存,不推出vi:wq 保存文件并退出v ...
- MongoDB "$" 字符 下标位置
我们可以修改列表里面元素的名字 例如: 修改age=34的数据,hobby里面的"足球"改为"网球" }) { "_id" : Object ...
- Python3使用AES加密的库函数PyCrypto、PyCryptodome
我们在网上查看Python爬虫教程的时候,细心的朋友会发现:很多网站为了降低服务器的请求压力都做了各式各样的反爬策略,浏览器通过http post请求服务器端数据时,传输的data字段很多都是经过加密 ...
- MySQL服务安全加固
数据库管理人员可以参考本文档进行 MySQL 数据库系统的安全配置加固,提高数据库的安全性,确保数据库服务稳定.安全.可靠地运行. 漏洞发现 您可以使用安骑士企业版自动检测您的服务器上是否存在 MyS ...
- Java数据库连接技术
使用mysql作为开发数据库,创建user表.创表语句如下: create database learn; use learn; CREATE TABLE user(id INT PRIMARY KE ...
- C#对象序列化成XML,以及自定义标签名
C#对象序列化操作: public class XMLHelper { /// <summary> /// 对象序列化成 XML String /// </summary> p ...
- Python数据分析Numpy库方法简介(二)
数据分析图片保存:vg 1.保存图片:plt.savefig(path) 2.图片格式:jpg,png,svg(建议使用,不失真) 3.数据存储格式: excle,csv csv介绍 csv就是用逗号 ...