1.spring 注解

//@Controller
//@ResponseBody
@RestController
@RequestMapping("car")
public class CarController {
    //注意1:: 参数列表里的参数类型,最好使用引用类型,
    //如果浏览器没有传值过来就用默认值,但使用基本类型会抛异常的
    //解析普通的get传递的参数
    //http://localhost:8080/car/get?id=100&name=张三
    @RequestMapping("get")

@RequestMapping("get2/{id}/{name}")注解

//解析restful传递的参数:简化了get方式参数的写法
    //http://localhost:8080/car/get2/100/张三
    @RequestMapping("get2/{id}/{name}")
 //{x}--通过{}获取访问路径中携带的参数,并且交给变量x保存

//@PathVariable -- 获取{}中间变量的值//是C层,控制层,用来接受请求和给出响应 @RestController

@RequestMapping("stu")
    public String get2(@PathVariable Integer id,

1.1 @Component

作用:

调用无参构造创建一个bean对象,并把对象存入spring的IOC容器,交由spring容器进行管理。相当于在xml中配置一个bean。

属性:

value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。

1.2 @Controller

作用:

作用上与@Component。一般用于表现层的注解。

属性:

value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。

1.3 @Service

作用:

作用上与@Component。一般用于业务层的注解。

属性:

value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。

1.4 @Repository

作用:

作用上与@Component。一般用于持久层的注解。

属性:

value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。

1.5 @Bean

作用:

用于把当前方法的返回值作为bean对象存入spring的ioc容器中

属性:

name:用于指定bean的id。当不写时,默认值是当前方法的名称。注意:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象,查找的方式和Autowired注解的作用是一样的。

案例:

/*** 获取DataSource对象* @return*/
@Bean(value = "dataSource")
public DataSource getDataSource() {try {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(this.driver);dataSource.setJdbcUrl(this.url);dataSource.setUser(this.username);dataSource.setPassword(this.password);return dataSource;}catch (Exception exception) {throw new RuntimeException(exception);}
}

2)用于依赖注入的注解

2.1 @Autowired

作用:

@Autowire和@Resource都是Spring支持的注解形式动态装配bean的方式。Autowire默认按照类型(byType)装配,如果想要按照名称(byName)装配,需结合@Qualifier注解使用。

属性:

required:@Autowire注解默认情况下要求依赖对象必须存在。如果不存在,则在注入的时候会抛出异常。如果允许依赖对象为null,需设置required属性为false。

案例:

@Autowire
@Qualifier("userService")
private UserService userService;

2.2 @Qualifier

作用:

在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和  @Autowire一起使用;但是给方法参数注入时,可以独立使用。

属性:

value:用于指定要注入的bean的id,其中,该属性可以省略不写。

案例:

@Autowire
@Qualifier(value="userService")
//@Qualifier("userService")     //value属性可以省略不写
private UserService userService;

2.3 @Resource

作用:

@Autowire和@Resource都是Spring支持的注解形式动态装配bean的方式。@Resource默认按照名称(byName)装配,名称可以通过name属性指定。如果没有指定name,则注解在字段上时,默认取(name=字段名称)装配。如果注解在setter方法上时,默认取(name=属性名称)装配。

属性:

name:用于指定要注入的bean的id
type:用于指定要注入的bean的type

装配顺序

1.如果同时指定name和type属性,则找到唯一匹配的bean装配,未找到则抛异常;
2.如果指定name属性,则按照名称(byName)装配,未找到则抛异常;
3.如果指定type属性,则按照类型(byType)装配,未找到或者找到多个则抛异常;
4.既未指定name属性,又未指定type属性,则按照名称(byName)装配;如果未找到,则按照类型(byType)装配。

案例:

@Resource(name="userService")
//@Resource(type="userService")
//@Resource(name="userService", type="UserService")
private UserService userService;

2.4 @Value

作用:

通过@Value可以将外部的值动态注入到Bean中,可以为基本类型数据和String类型数据的变量注入数据

案例:

// 1.基本类型数据和String类型数据的变量注入数据
@Value("tom")
private String name;
@Value("18")
private Integer age;// 2.从properties配置文件中获取数据并设置到成员变量中
// 2.1jdbcConfig.properties配置文件定义如下
jdbc.driver \= com.mysql.jdbc.Driver
jdbc.url \= jdbc:mysql://localhost:3306/eesy
jdbc.username \= root
jdbc.password \= root// 2.2获取数据如下
@Value("${jdbc.driver}")
private String driver;@Value("${jdbc.url}")
private String url;  @Value("${jdbc.username}")
private String username;  @Value("${jdbc.password}")
private String password;

3)用于改变bean作用范围的注解

3.1 @Scope

作用:

指定bean的作用范围。

属性:

value:1)singleton:单例2)prototype:多例3)request: 4)session: 5)globalsession:

案例:

@Autowire
@Scope(value="prototype")
private UserService userService;

4)生命周期相关的注解

4.1 @PostConstruct

作用:

指定初始化方法

案例:

@PostConstruct
public void init() {  System.out.println("初始化方法执行");
}

4.2 @PreDestroy

作用:

指定销毁方法

案例:

@PreDestroy
public void destroy() {  System.out.println("销毁方法执行");
}

spring 注解大全 及用法相关推荐

  1. Spring注解大全(史上最全,字母编号,有实例)

    目录 A @Accessors 链式编程使用.需要搭配@Getter和@Setter使用.主要有三个参数: 序号 参数名 介绍 1 chain 链式 2 fluent 流式(若无显示指定chain的值 ...

  2. Spring注解大全详情,

    spring注解目录 Controller RestController Service Autowired RequestMapping RequestParam NonNull Nullable ...

  3. spring注解大全

    [转载]https://www.cnblogs.com/zxf330301/articles/6559210.html spring @component的作用 1.@controller 控制器(注 ...

  4. Spring注解之@Import用法解析

    前言:最近在回顾阅读Springboot源码时发现框架层面大量使用@Import注解,特别是Springboot自动装配机制更是大量使用该注解,搜索部分结果图如下.简单来说就是Springboot中用 ...

  5. Spring注解大全,最后一个经常容易记不住

    前言 随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架Spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制Spring框架. 而Spring的的 ...

  6. Spring注解大全(示例详解)

    Controller 标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象. @Controller public class TestController ...

  7. Spring注解大全(更新中)

    原文:https://blog.csdn.net/IT_faquir/article/details/78025203 ,本文是在原文的基础上进行了添加和修改.如有需要可观看原文 1.声明bean的注 ...

  8. Spring中注解大全

    Spring中注解大全 @Controller 标识一个该类是Spring MVC controller 处理器,用来创建处理http请求的对象 @Controller public class Te ...

  9. spring注解详解与用法(总览)

    这篇文章收集了我写的所有的spring注解的详细说明与用法,点击可以跳转到对应文章,此文章会不断更新 spring注解详解与用法(1)最基础也是最常见的如下所示,详情点击这里 @Controller/ ...

最新文章

  1. 十年“老司机”的私家锦囊:10个编程技巧、5个纠错步骤,让你的编程之路少点坎坷
  2. 终端文件夹跳转工具autojump
  3. Bundle Adjustment原理及应用(附实战代码)
  4. mysql字段timestamp为空映射报错处理
  5. 【机器视觉】机器视觉光源详解
  6. 手把手教你用好LINQ to SQL(1)
  7. 2021泉州高考学校成绩查询,2021泉州市地区高考成绩排名查询,泉州市高考各高中成绩喜报榜单...
  8. java演练 数组的逆序文字玩法 你是猪才怪
  9. FTP服务器配置部分
  10. 2019PHP最新简历
  11. lammps教程:boundary命令详解
  12. dsp中C语言线性缓冲,TI C64x+ DSP CACHE 一致性分析与维护
  13. 错误C1083无法打开预编译头文件: “Debug\XXX.pch”: No such file or directory 的解决方法
  14. Java层Binder框架通信原理(转自Cloud Chou's Tech Blog)
  15. 超融合架构真的完美吗?
  16. 电动汽车热管理粘合剂和密封剂市场现状及未来发展趋势
  17. cas虚拟服务器,适用于CAS虚拟化平台的CloudOS3.0云主机镜像的制作
  18. 个人博客网站升级http为https
  19. 在 keil 建立基于STM32开发的工程模板--详细步骤
  20. 【达摩院OpenVI】AIGC技术在图像超分上的创新应用

热门文章

  1. 2022年哪款超短焦投影仪性价比最高?当贝超短焦激光投影仪U1测评值得买
  2. 蓝天白云何在?国外的天空分外蓝,外国的月亮更加圆?真实与谎言
  3. Fluka 安装及 pydicom
  4. MATLAB对数图拟合,求助,MATLAB中对数分布拟合问题
  5. 【电磁】基于matlab求解瞬变电磁TEM层状介质正演【含Matlab源码 2164期】
  6. Android平台上集成海康SDK
  7. 字符串(含中文)转16进制,16进制转字符串(含中文)
  8. 读书心得 | 软技能-代码之外的生存指南
  9. 仙剑5前传大吐糟 2013-2-5记录
  10. ActionScript 3.0 学习(十七) away3D学习2 away3d的贴图原理