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. Linux 下 Nand Flash 调用关系

    Nand Flash 设备添加时数据结构包含关系 struct mtd_partition        partition_info[] --> struct s3c2410_nand_set ...

  2. vue:使用element-ui制作动态表格

    参考; https://github.com/PanJiaChen/vue-element-admin/blob/master/src/views/table/dynamic-table/compon ...

  3. Android开发 StateListDrawable详解

    前言 StateListDrawable是与xml中的selector属性对应代码实现类,它需要配合GradientDrawable的使用,如果你还不了解GradientDrawable可以参考我的另 ...

  4. Loadrunner学习---脚本编写(1)

    Loadrunner学习---脚本编写(1) 中午看了两集<奋斗>发现越看越想看,但是想到好不容易没上班,在家还是赶紧学习下LR的知识吧.下面这个网页的文章原来也是看过的,但发现没几天就忘 ...

  5. 异常处理记录: Servlet class X is not a javax.servlet.Servlet

    使用Maven的tomcat插件启动Web项目, 访问资源时, 发生如下异常: https://stackoverflow.com/questions/1036702/my-class-is-not- ...

  6. C++萃取技术的一个简单初探

    首先本文并不是讲解C++萃取技术,关于C++的萃取技术网上有很多文章,推荐http://www.cppblog.com/woaidongmao/archive/2008/11/09/66387.htm ...

  7. day07 linux磁盘分区,ps,kill,df,top命令使用

    day07进入单用户模式删除密码不能进入系统问题: SELINUX=disabled 操作系统linux开机流程加电BIOS找到启动介质先读取第一个扇区(MBR)grup找到kernel加载到内存执行 ...

  8. dvajs+antd定制主题踩坑记录

    记一下刚刚解决的问题,困扰了几周,期间困兽争斗,甚至想放弃antd组件库.终于出来了,人类科技又进步了(才怪). 首先我按照dva官网建立了项目.里面引入antd的各种组件,因为需要用到一个switc ...

  9. IDEA本地SBT项目上传到SVN

    需求 将本地创建的一个项目上到SVN 网上很多从SVN下载到idea,提交.更新.删除等操作. 但是少有从本地上传一个项目到svn管理的案例 本文参考https://blog.csdn.net/cao ...

  10. nprogress 转

    转载:http://www.xuanfengge.com/front-end-nprogress-and-lightweight-web-progress-bar-nanobar.html 前言 进度 ...