Spring——注解
时间:2019-11-01
本文章向大家介绍Spring——注解,主要包括Spring——注解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、IOC注解
1.用于向Spring容器中注入bean:
- @Component:向Spring容器中注入bean
- @Repository:用于标注Dao层
- @Service:用于标注Service业务层
- @Controller:用于标注控制器类
2.用于得到数据,实现Bean组件的装配
- @Autowired:默认ByType方式,如果出现同名类,则不能按照Type进行注入 需要使用@Qualifier 指明ID
- .@Resource: 默认ByName方式,如果name确实默认按照ByType方式注入
案例实现IOC注解
(1).大配置文件中加入包扫描仪,扫描包中的注解
<context:component-scan base-package="cn.spring.aop"/>
base-package中填写的是包名,多个包名用‘,’区分
(2).定义相应的接口及实现类
@Repository("mapperImpl") public class MapperImpl implements Mapper { @Override public int add(StudentBean stu) { System.out.println("123"); return 0; } }
@Service("StuServiceImpl") public class StuServiceImpl implements StuService { @Resource private Mapper mapper; @Override public int add(StudentBean stu) { return mapper.add(stu); } }
(3).测试类
@Test public void IocTestBy(){ ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); StuService stuServiceImpl = (StuService)context.getBean("StuServiceImpl"); stuServiceImpl.add(new StudentBean()); }
二、AOP注解
- @Aspect :声明切面
- @Ponitcut :声明公共的切点表达式
- @Before :前置增强
- @AfterReturning: 后置增强
- @Around :环绕增强
- @AfterThrowing :异常抛出增强
- @After: 最终增强
注解实现各种增强
(1).大配置文件中开启aop注解
<aop:aspectj-autoproxy/>
(2).接口实现
@Service("aopServices") public class AopServices{ public void doSome() throws Exception{ /* int i=1/0;*/ System.out.println("Service层业务"); } }
(3).增强类
@Aspect @Component public class Advices { //设定切入点表达式 @Pointcut("execution(* *..aop.*.*(..))") public void Pointcut(){ } //前置增强 @Before("Pointcut()") public void before(){ System.out.println("=======前置========="); } //后置增强 @AfterReturning("Pointcut()") public void afterReturning(){ System.out.println("=======后置=========="); } //环绕增强 @Around("Pointcut()") public Object Around(ProceedingJoinPoint jp) throws Throwable { System.out.println("=======环绕前=========="); Object proceed = jp.proceed(); System.out.println("=======环绕后=========="); return proceed; } //异常增强 @AfterThrowing(pointcut = "execution(* *..aop.*.*(..))",throwing = "ex") public void AfterThrowing(Exception ex){ System.out.println("发生异常"); } //最终增强 @After("Pointcut()") public void After(){ System.out.println("=======最终增========="); } }
(4).测试类
public class AopTest { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); AopServices aopServices = (AopServices)context.getBean("aopServices"); try { aopServices.doSome(); } catch (Exception e) { e.printStackTrace(); } } }
原文地址:https://www.cnblogs.com/xiao-ran/p/11776149.html
- Linux下 标准错误输出重定向
- CentOs6.5 修改主机名
- 基础篇章:React Native 之 View 和 Text 的讲解
- CentOs7.3 修改主机名
- 基础篇章:React Native之Flexbox的讲解(Height and Width)
- PDF.js专题
- CentOs7.3 编译安装 Nginx 1.9.9
- 基础篇章:关于 React Native 之 RefreshControl 组件的讲解
- CentOs7.3 安装 JDK1.8
- 基础篇章:关于 React Native 之 ListView 组件的讲解
- maven环境快速搭建
- CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务
- CentOs7.3 搭建 Redis-4.0.1 Cluster 集群服务
- CentOs7.3 搭建 Redis-4.0.1 单机服务
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 如何通过outlet在SAP Spartacus的产品明细页面插入自定义UI
- 防盗链的原理以及实现
- Python如何根据日期判断周几
- http常见状态码
- golang time相关总结
- [白话解析] 深入浅出熵的概念 & 决策树之ID3算法
- [白话解析] 深入浅出边缘计算
- 变废为宝 | 旧电脑变云数据中心 | Esxi 配置
- 【Java面试总结】Java基础(上篇)
- Esxi安装LEDE(OpenWrt) | 旧电脑变庞路由
- [白话解析] 深入浅出贝叶斯定理
- LEDE(OpenWrt)安装openclash |旁路由技巧 | 配置网络流量全部通过旁路由
- [白话解析] 深入浅出朴素贝叶斯模型原理及应用
- 【Java面试总结】Java基础(下篇)
- 使用现代化的脚本进行 ArcGIS JS API 开发