TZ_05_Spring_annotation常见注解
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 @RunWith(SpringJUnit4ClassRunner.class) 版本要求 Spring5.x及以上 junit4.12及以上 |
Spring基于AOP注解的配置 | |
@Pointcut |
配置切点位置 @Pointcut("execution(* com.hdh.service.impl.*.*(..))") @Before("pt1()") //前置通知 @AfterReturning("pt1()") //后置通知 @AfterThrowing("pt1()")//异常通知 @After("pt1()")//最终通知 ApplicationContext.xml配置 <!--配置Spring创建容器时要扫描的包 --> |
/**
* 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常见注解的更多相关文章
- 小记----------lombok插件idea的安装&常见注解解释及小案例
Lombok安装插件 软件:idea 2018.3.6版本 1.打开settings
- java 日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解
项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...
- Java日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解
项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...
- Java注解【二、Java中的常见注解】
JDK自带注解 @Override 重写 @Deprecated 已过期 @Suppvisewarnings 压制警告 Demo: public interface Person { public S ...
- SpringBoot常见注解
0.前言 这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没 ...
- springmvc常见注解模式
常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping ...
- SpringMVC常见注解
@RequestParam( value="name", require=false ) String wrap 参数绑定:require=false 表示前端对 name 这个 ...
- SpringBoot中常见注解含义总结
@RestController @RestController被称为一个构造型(stereotype)注解.它为阅读代码的开发人员提供建议.对于Spring,该类扮演了一个特殊角色.它继承自@Cont ...
- Spring Boot 项目中常见注解
@Autowired 自动导入依赖的 Bean.byType方式.把配置好的 Bean拿来用,完成属性.方法的组装,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作 import org ...
随机推荐
- JS数组 呼叫团里成员(使用数组元素) myarray[0]
呼叫团里成员(使用数组元素) 我们知道数组中的每个值有一个索引号,从0开始,如下图, myarray变量存储6个人的成绩: 要得到一个数组元素的值,只需引用数组变量并提供一个索引,如: 第一个人的 ...
- c# 中反射里的invoke方法的参数
一个最简单的C#反射实例,首先编写类库如下: namespace ReflectionTest { public class WriteTest { //带参数的公共方法 public void Wr ...
- leetcode-86-分割链表
题目描述: 方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.va ...
- 如何在屏幕上查看命令的输出以及在Linux中写入文件
在Linux中输出命令可以做很多事情(http://www.nanke0834.com) 您可以将命令的输出分配给变量,将其发送到另一个命令/程序以通过管道进行处理或将其重定向到文件以进行进一步分析. ...
- 【UVa 12186】Another Crisis
[Link]: [Description] 给你n个员工和一个boss; 这n个员工和boss之间的关系是一棵树; 然后,现在最底层的叶子节点,想要向上级写信; 每个叶子节点都会向上级写一封信; 然而 ...
- bootStrap-treeview插件
简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一 ...
- 第十一章 Odoo 12开发之看板视图和用户端 QWeb
QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面.通过 QWeb可生成内容丰富的看板(Kankan)视图.报表和 CMS 网页.本文中我们将学习QWeb 语法以及如 ...
- 「BZOJ2388」旅行规划
传送门 分块+凸包 求出前缀和数组s 对于l~r加上k,相当于s[l]~s[r]加上一个首项为k,公差为k的等差数列.r~n加上k*(r-l+1). 分块之后对每一块维护两个标记,一个记录它加的等差数 ...
- 花园【SCOI2017期望DP入门题】
题目描述: 小 A 的花园的长和宽分别是 L,H .小 A 喜欢在花园里做游戏.每次做游戏的时候,他都先把花园均匀分割成 L×H 个小方块,每个方块的长和宽都是 1 .然后,小 A 会从花园的西北角的 ...
- 出现 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 ...