(1).用于注册bean对象的注解

1.1@Component:

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

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

1.2@Controller

作用: 调用无参构造创建一个bean对象,并把对象存入spring的Ioc容器,交由spring容器进行管理。相当于在xml中配置一个bean。一般用于表现层的注解

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

1.3@Service

作用: 调用无参构造创建一个bean对象,并把对象存入spring的Ioc容器,交由spring容器进行管理。相当于在xml中配置一个bean。一般用于业务层的注解

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

1.4@Repository

作用: 调用无参构造创建一个bean对象,并把对象存入spring的Ioc容器,交由spring容器进行管理。相当于在xml中配置一个bean。一般用于持久层的注解

属性: 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.setPwd(this.pwd);

return dataSource; }catch(Exception exception) {

throw new RuntimeException(exception);

}

}

(2).用于依赖注入的注解

2.1@Autowired

作用:

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

属性:

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

例: @Autowired @Qualifier("userService")

private UserService userService;

2.2@Qualifier

作用:

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

属性:

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)生命周期相关的注解

@PostConstruct

作用:

指定初始化方法

例:

@PostConstruct

public void init() {

System.out.println("初始化方法执行");

}

4.2 @PreDestroy

作用:

指定销毁方法

例:

@PreDestroy

public void destroy() {

System.out.println("销毁方法执行");

}

-----dao
@Repository --写在dao层
-----service
@Service --写在service层
-----controller
@Controller --写在controller层
@Scope --写在多人访问controller上 单例
@scope("prototype") 多例
-----属性注入
@Autowired --写在需要注入的属性上
@Resource(name="loginService")与Autowired类似,但是需要通过指定名字去寻找找对应名字的注入对象
@Inject 与Autowired和Resource
-----资源处理
@RequestMapping对应访问的资源,可以只写在controller方法上
也可以写在controller上,controller上的也可以省略

作者:旧歌
链接:https://www.cnblogs.com/wdyjt/p/14101952.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利

Spring 中常用的注解的更多相关文章

  1. Spring中常用的注解,你知道几个呢?

    今天给大家分享下Spring中一般常用的注解都有哪些.可能很多人做了很长是了但有些还是不知道一些注解,不过没有关系,你接着往下看. Spring部分 1.声明bean的注解 @Component 组件 ...

  2. Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)

    当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管 ...

  3. spring中常用的注解

    使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...

  4. Spring中常用的注解及作用

    @Component(value) 配置类,当使用该注解时,SpringIOC会将这个类自动扫描成一个bean实例 不写的时候,默认是类名,且首字母小写 @ComponentScan 默认是代表进行扫 ...

  5. Junit中常用的注解说明

    Java注解((Annotation)的使用方法是@注解名 ,能通过简单的词语来实现一些功能.在junit中常用的注解有@Test.@Ignore.@BeforeClass.@AfterClass.@ ...

  6. 简单了解Spring中常用工具类_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口, ...

  7. 第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析

    关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判 ...

  8. spring 中常用的配置项

    1.spring 中常用的配置项 application.properties #端口 server.port=8081 #调试模式 debug=false #上下文 #一般情况下,小项目通常都是在t ...

  9. Spring 中aop切面注解实现

    spring中aop的注解实现方式简单实例   上篇中我们讲到spring的xml实现,这里我们讲讲使用注解如何实现aop呢.前面已经讲过aop的简单理解了,这里就不在赘述了. 注解方式实现aop我们 ...

随机推荐

  1. API的使用(3)Arrays 类,Math类,三大特性--继承

    Arrays类 概述   java.util.Arrays此时主要是用来操作数组,里面提供了很多的操作API的方法.如[排序]和[搜索]功能.其所有的方法均为静态方法,调用起来非常简单. 操作数组的方 ...

  2. python3 多线程批量验证POC模板

    #coding:utf-8 import threading,Queue,sys,os class RedisUN(threading.Thread): def __init__(self,queue ...

  3. MAC系统网页链接如何下载

    Folx 5 是一款简单易用.功能强大的Mac OS系统的下载管理器.Folx界面简洁,下载管理方便,支持网页链接下载.BT下载和YouTube下载,而且还可以设置计划任务.搜索BT种子以及添加Tra ...

  4. jQuery 第八章 实例方法 遍历索引

    遍历索引相关方法: .each() .index() ------------------------------------------------- .each() 有点像数组的 forEach( ...

  5. day97:MoFang:移动端APP开发准备&移动端项目搭建&APICloud前端框架

    目录 1.移动端开发相关概念 1.APP类型 2.移动端屏幕介绍 3.移动端自适配方案 4.元信息(meta) 2.APP开发准备 1.注册APPCLoud账号 2.下载APP开发编辑器 3.下载AP ...

  6. SFTP 服务器cd() 方法和 ls() 方法说明

    方法说明: cd():这个方法用于进入某个目录下. 默认情况,当连接SFTP服务器成功后直接进入用户目录,比如我连接自己本机SFTP服务器后进入/Users/mac目录.cd() 方法进入每一个目录都 ...

  7. 使用Python开发鸿蒙设备程序(0-初体验)

    到目前为止,鸿蒙设备开发的"官方指定语言"还是C语言! 这看起来是一件正常的事,毕竟鸿蒙设备开发还是属于嵌入式开发的范畴,而在嵌入式开发中C语言又是当之无愧的首选,所以,大家也都接 ...

  8. C语言讲义——内联函数

    如果一些函数被频繁调用,不断地有函数入栈(Stack),会造成栈空间的大量消耗. 对应这种问题,可以使用内联函数(inline). 编译器会将内联函数的代码整段插入到调用的位置. #include & ...

  9. 我与UML相爱相杀的狗血日常

    前言 该怎么说呢,在专业母亲的包办婚姻和我不得不为日后的百万家产[日后的百万年薪,我怕是在做梦]下,我和UML的婚后生活正式开始了.第一天回娘家我亓老师就给出了她最爱的编程作业.说实话,我当初以头发为 ...

  10. MockWebServer使用指南(转载)

    转载自(http://blog.csdn.net/shensky711/article/details/52771797 ) MockWebServer介绍 MockWebServer是square出 ...