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. javaweb中静态文件的处理方法

    方案一:激活Tomcat的defaultServlet来处理静态文件 在web.xml中添加: <servlet-mapping> <servlet-name>default& ...

  2. hudson通过ant自动编译、启动、停止java的jar

    set ANT_PATH=E:\soft\apache_ant\bine:cd E:\data\codex\server\trunk\serversvn up @echo.@echo.@echo &q ...

  3. 通过ID获取元素 注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。

    通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人.那么在网页中,我们通过id ...

  4. spring:ApplicationContext的三个实现类

    * ApplicationContest的三个常用实现类* ClassPathXmlApplicationContext:它可以加载类路径的配置文件,要求配置文件必须在类路径下,如果不在则加载不了* ...

  5. Python全栈开发:Mysql(二)

    视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT *FROM (SELEC ...

  6. 防范永恒之蓝勒索病毒-XP、Win10文件共享怎样设置

    企业内部员工之间的文件共享,是企业内部文件交换的重要手段.传统的文件共享是通过Windows的目录共享来实现的,而目录共享功能因其可能存在安全隐患使得很多企业分发放弃了这个文件共享模式. 如去年勒索病 ...

  7. 日志服务与SIEM(如Splunk)集成方案实战

    背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规.审计.与其他相关日志能够导入到您的安全运维中心(SOC)中. 名词解释 LOG( ...

  8. R语言数据预处理

    R语言数据预处理 一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date ...

  9. 操作系统-CPU调度

    概念 控制.协调多个进程对CPU的竞争 即按一定的调度算法从就绪队列中选择一个进程,把CPU的使用权交给被选中的进程 场景 N个进程就绪,等待上M(M>=1)个CPU运行,需要决策哪个进程分配给 ...

  10. WPF+MVVM+EF示例1

    实现了那些功能,先看看效果图: 项目工程目录: 接下来开始具体的步骤: 第一步:在VS中新建工程 第二步:使用NuGet 安装EntityFramework 第三步:使用NuGet 安装EntityF ...