第五章 Spring核心概念
企业级应用是指那些为商业组织,大型企业而创建部署的解决方案及应用,大型企业级应用的结构复杂,涉及的外部资源众多,事务密集,数据规模大,用户数量多,有较强的安全性考虑和较高的性能要求
Spring是企业应用开发的 一站式 选择 Spring贯穿表现层,业务层,持久层。
Spring是一个轻量级框架,大大简化了Java企业级开发,提供了强大,稳定的功能。
Spring有两个主要目标:一是让现有技术更易于使用,二是促进良好的编程习惯。
Spring是一个全面的解决方案,但它坚持一个原则:不重新发明技术
Spring Core是框架的最基础部分,提供了IoC特性,Spring Context为企业级开发提供了便利和集成工具,Spring AOP是基于Spring Core的符合规范的面向切面编程的实现。
控制反转也称为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
什么是依赖,依赖 在代码中一般指通过局部变量,方法参数,返回值等建立的对于其他对象的调用关系。
不在依靠自身的代码去获得所依赖的具体DAO对象,而是把这一工作转交给了 第三方 从而避免了和具体 实现类之间的耦合。
Spring 官方的地址 http://repo.spring.io/release/org/springframework/spring
编写Spring配置文件,可在项目中创建专门的SourceFolder 下 创建applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="zg" class="sjiyi.Shangjiyi">
<property name="zhangga">
<value>张嘎</value>
</property>
<property name="rod">
<value>三天不打鬼子,手都痒痒</value>
</property>
</bean>
<bean id="r" class="sjiyi.Shangjiyi">
<property name="zhangga">
<value>Rod</value>
</property>
<property name="rod">
<value>世界上有10种人,认识二进制的和不认识二进制的</value>
</property>
</bean>
</beans>
通过ClassPathXmlApplicationContext实例化Spring的上下文
ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”)
//通过ApplicationContext 的getBean()方法,根据id来获取Bean的实例
HelloSpring helloSpring = (HelloSpring) context.getBean(“Bean id名”);
面向切面编程 是软件编程思想发展到一定阶段的产物 是面向对象编程的有益补充。
切面: 一个模块化的横切逻辑 可能会横切多个对象
连接点:程序执行中的某个具体的执行点
增强处理:切面在某个特定连接点上执行的代码逻辑
切入点: 对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式相关联,并在与这个切入点匹配的某个连接点上运行。
目标对象:被一个或多个切面增强的对象
AOP代理:由AOP框架所创建的对象,实现执行增强处理方法等功能
织入:将增强处理连接到应用程序中的类型或对象上的过程
增强处理类型:在原对象的fun()方法之前插入的增强处理为前置增强,方法正常执行完以后插入的增强处理为后置增强,此外还有环绕增强,异常抛出增强,最终增强等类型
1.在项目中添加Spring AOP相关的jar文件
2.编写前置增强和后置增强实现日志功能
3.编写Spring配置文件,对业务方法进行增强处理
添加AOP相关的配置
Xmlns:aop=http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xds
4.编写代码,获取带有增强处理的业务对象
Execution 是切入点指示符,它的括号中是一个切入点表达式,可以配置需要切入增强处理的方法的特征,切人点表达式支持模糊匹配
Public * addNewUser(entity.User) * 表示匹配所有类型的返回值。
Public void *(entity.User) * 匹配所有的方法名
Public void addNewUser(..): “..” 表示匹配所有参数个数和类型
l Com.service.*.*(..) 这个表达式匹配com.service包下所有类的所有方法
l Com.service..*.*(..): 这个表达式匹配com.service包及其子2包下所有类的所有方法。
原文地址:https://www.cnblogs.com/LxOwz/p/11440389.html
- Silverlight Telerik控件学习:TreeView数据绑定并初始化选中状态、PanelBar的Accordion效果、TabPanel、Frame基本使用
- 这或许是对小白最友好的python入门了吧——4,列表
- 每个人都应该知道的十个机器学习常识
- 重新带你了解React.js
- WebService又一个不爽的地方
- 劲爆!小程序又增新功能!为落地微信智慧零售方案做铺垫!
- 5G光传送网技术
- 突破封闭 Web 系统的技巧之正面冲锋
- 建立本地的Blast数据库
- [biztalk笔记]-1.Hello World!
- 人工智能对政府意味着什么
- 利用Linq对集合元素合并、去重复处理
- 上高速就开启自动驾驶,但出车祸了!自动驾驶真不敢用哦!
- Gof设计模式之建造者模式(二)
- 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 文档注释
- 在MacOSX机器上设置JenkinsCI服务器
- springboot2配置文件定义${user.name}内容失效问题探究
- 重学Javascript之数据类型
- JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析
- 聊聊dubbo-go的ProviderAuthFilter
- 仅需四步,写一个springboot starter
- 重学Javascript之类型转换
- Spring Cloud 微服务(九)- 集成 Spring Boot Admin
- 聊聊dubbo-go的RPCInvocation
- 程序员是怎么记住一堆密码的?
- 腾讯大牛教你MySQL 8.0 PFS histogram解析与优化
- Python __init__.py 作用详解
- Python创建包,导入包
- Python查看模块(变量、函数、类)方法
- Python __doc__属性:查看文档