Spring常用的注解大全和解释

注解 解释
@Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。
@Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层)
@Reponsitory 组合注解(组合了@Component注解),应用在dao层(数据访问层)
@Component 表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。
@Autowired Spring提供的工具(由Spring的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自动注入。)
@Resource 直接按照bean的id注入,可以独立使用
@Value 值得注入。经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等等
@QualiFier 再按照@Autowired注入的基础上再按照名称注入。他在给类成员注入时不能单独使用,必须配合@Autowired使用,但是可以单独给方法参数使用
@ComponentScan 自动扫描指定包下所有使用@Service,@Component,@Controller,@Repository的类并注册
@Bean 用于把当前方法的返回值作为bean对象存入spring的ioc容器中取去
@Scope Spring创建实例的模式(默认为单例)value属性值常用:singleton prototype
@Configuration 作用:表明这个类是一个配置类  获取核心配置文件 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfigguration.class);
@Import  作用:导入其他配置文件 value=类的字节码对象。当我们使用@Import直接之后,该类就是主类,导入的都是子类
@PropertySource  作用:用于指定properties文件的位置  属性:value指定文件名和路径  关键字:classpath表示类路径下
   
Spring整合Junit

1.Junit程序的人口是@Test方法他继承了main方法

2.Junit中无法使用注解  在创建Junit时无法创建Spring容器

解决思路:

   1.导入Spring整合Junit的jar包 spring-test
 *    2.使用Junit提供的注解把原有的main方法替换成Spring提供的main方法 @Runwith
 *    3.告诉Spring的运行器Spring的ioc的创建时基于xml还是注解,并说名位置
 *    @ContextConfiguration
 *    value:
 *    location:指定xml文件的位置,加上classpath表示类路径
 *    classes: 指定注解类坐在的位置

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=SpringConfigguration.class)

版本要求 Spring5.x及以上  junit4.12及以上

 Spring基于AOP注解的配置  
 
@Pointcut

配置切点位置   @Pointcut("execution(* com.hdh.service.impl.*.*(..))")
          public void pt1() {}

        @Before("pt1()")  //前置通知

        @AfterReturning("pt1()") //后置通知

        @AfterThrowing("pt1()")//异常通知

        @After("pt1()")//最终通知

ApplicationContext.xml配置

<!--配置Spring创建容器时要扫描的包 -->
    <context:component-scan base-package="com.hdh"></context:component-scan>
    
    <!--开启spring支持AOP的注解  -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

   
   
   
/**
* set注入方式
* <bean id="accountService" class="com.hdh.service.impl" scope="" init-method=
* "" destory-method=""> <property name="" value="" | ref=""></property> </bean>
*
* 用于创建对象的 他们的作用就和在xml配置文件中编写一个<bean>标签是一样的
*
* @Componcet :用于把当前类对象放入spring容器中 属性:value:用于指定bean的id。不写时默认是当前类名加上首字母小写
*
* @Controller:表现层
* @Service:业务层
* @Repository:持久层 以上三个注解他们的作用和属性与Componcet一摸一样 他们三个是Spring框架为我们明确提供为三层使用的
*
*
* 由于数据注入
* @Autowired
* 作用:自动将IOC容器中的类型相同的bean注入。
* 如果IOC容器中没有一个与之类型相同则报错,如果有多个
* 出现位置:一般出现在方法和变量上
* @QualiFier
 *    作用:再按照类中注入的基础上再按照名称注入。他在给类成员注入时不能单独使用,但是可以单独给方法参数使用
 * 
* @Resource
 *    作用:直接按照bean的id进行注入。可设置name属性
 *
 * @Value
 *    作用:注入基本类型和String类型
 *    属性:value,用于指定的数据值。它可以使用spring中的sqEL
 *       sqEL写法${表达式}
 * @Scope
 *       作用:指定bean的作用范围
 *   属性:value取值:singleton  prototype 默认是singleton单例
 *     
 * @PostConstruct
 *    作用:指定初始化方法
 * @PreDestory
 *        作用:指定销毁方法
 *     
 */ @Component("as") // 只有一个属性且是value时可以不写
public class AccountServiceImpl implements AccountService {
//@Autowired
//@Qualifier(value="accountDaoImpl")
   @Resource(name="accountDaoImpl")
private AccountDao accountDao; public void saveAccount() {
accountDao.saveAccount();
}
}

TZ_05_Spring_annotation常见注解的更多相关文章

  1. 小记----------lombok插件idea的安装&常见注解解释及小案例

    Lombok安装插件 软件:idea 2018.3.6版本 1.打开settings

  2. java 日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解

    项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...

  3. Java日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解

    项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...

  4. Java注解【二、Java中的常见注解】

    JDK自带注解 @Override 重写 @Deprecated 已过期 @Suppvisewarnings 压制警告 Demo: public interface Person { public S ...

  5. SpringBoot常见注解

    0.前言 这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没 ...

  6. springmvc常见注解模式

    常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping ...

  7. SpringMVC常见注解

    @RequestParam( value="name", require=false ) String wrap  参数绑定:require=false 表示前端对 name 这个 ...

  8. SpringBoot中常见注解含义总结

    @RestController @RestController被称为一个构造型(stereotype)注解.它为阅读代码的开发人员提供建议.对于Spring,该类扮演了一个特殊角色.它继承自@Cont ...

  9. Spring Boot 项目中常见注解

    @Autowired 自动导入依赖的 Bean.byType方式.把配置好的 Bean拿来用,完成属性.方法的组装,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作 import org ...

随机推荐

  1. JS数组 呼叫团里成员(使用数组元素) myarray[0]

    呼叫团里成员(使用数组元素) 我们知道数组中的每个值有一个索引号,从0开始,如下图, myarray变量存储6个人的成绩:   要得到一个数组元素的值,只需引用数组变量并提供一个索引,如: 第一个人的 ...

  2. c# 中反射里的invoke方法的参数

    一个最简单的C#反射实例,首先编写类库如下: namespace ReflectionTest { public class WriteTest { //带参数的公共方法 public void Wr ...

  3. leetcode-86-分割链表

    题目描述: 方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.va ...

  4. 如何在屏幕上查看命令的输出以及在Linux中写入文件

    在Linux中输出命令可以做很多事情(http://www.nanke0834.com) 您可以将命令的输出分配给变量,将其发送到另一个命令/程序以通过管道进行处理或将其重定向到文件以进行进一步分析. ...

  5. 【UVa 12186】Another Crisis

    [Link]: [Description] 给你n个员工和一个boss; 这n个员工和boss之间的关系是一棵树; 然后,现在最底层的叶子节点,想要向上级写信; 每个叶子节点都会向上级写一封信; 然而 ...

  6. bootStrap-treeview插件

    简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一 ...

  7. 第十一章 Odoo 12开发之看板视图和用户端 QWeb

    QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面.通过 QWeb可生成内容丰富的看板(Kankan)视图.报表和 CMS 网页.本文中我们将学习QWeb 语法以及如 ...

  8. 「BZOJ2388」旅行规划

    传送门 分块+凸包 求出前缀和数组s 对于l~r加上k,相当于s[l]~s[r]加上一个首项为k,公差为k的等差数列.r~n加上k*(r-l+1). 分块之后对每一块维护两个标记,一个记录它加的等差数 ...

  9. 花园【SCOI2017期望DP入门题】

    题目描述: 小 A 的花园的长和宽分别是 L,H .小 A 喜欢在花园里做游戏.每次做游戏的时候,他都先把花园均匀分割成 L×H 个小方块,每个方块的长和宽都是 1 .然后,小 A 会从花园的西北角的 ...

  10. 出现 cannot download, $GOPATH not set. For more details see: go help gopath

    执行安装 sudo go get github.com/nsf/gocode 提示: cannot download, $GOPATH not set. For more details see: g ...