第五章 Spring核心概念
5.1.1 企业级应用开发
企业级应用是指那些为商业组织,大型企业而创建部署的解决方案及应用,大型企业级应用的结构复杂,涉及的外部资源众多,事务密集,数据规模大,用户数量多,有较强的安全性考虑和较高的性能要求
Spring是企业应用开发的 一站式 选择 Spring贯穿表现层,业务层,持久层。
5.1.2 Spring的 绿草丛
Spring是一个轻量级框架,大大简化了Java企业级开发,提供了强大,稳定的功能。
Spring有两个主要目标:一是让现有技术更易于使用,二是促进良好的编程习惯。
Spring是一个全面的解决方案,但它坚持一个原则:不重新发明技术
Spring Core是框架的最基础部分,提供了IoC特性,Spring Context为企业级开发提供了便利和集成工具,Spring AOP是基于Spring Core的符合规范的面向切面编程的实现。
5.2.1 理解 “控制反转”
控制反转也称为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
什么是依赖,依赖 在代码中一般指通过局部变量,方法参数,返回值等建立的对于其他对象的调用关系。
不在依靠自身的代码去获得所依赖的具体DAO对象,而是把这一工作转交给了 第三方 从而避免了和具体 实现类之间的耦合。
5.2.2 Hello,Spring
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名”);
5.3.1 理解面向切面编程
面向切面编程 是软件编程思想发展到一定阶段的产物 是面向对象编程的有益补充。
切面: 一个模块化的横切逻辑 可能会横切多个对象
连接点:程序执行中的某个具体的执行点
增强处理:切面在某个特定连接点上执行的代码逻辑
切入点: 对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式相关联,并在与这个切入点匹配的某个连接点上运行。
目标对象:被一个或多个切面增强的对象
AOP代理:由AOP框架所创建的对象,实现执行增强处理方法等功能
织入:将增强处理连接到应用程序中的类型或对象上的过程
增强处理类型:在原对象的fun()方法之前插入的增强处理为前置增强,方法正常执行完以后插入的增强处理为后置增强,此外还有环绕增强,异常抛出增强,最终增强等类型
5.3.2 使用Spring AOP实现日志输出
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包下所有类的所有方法。
第五章 Spring核心概念的更多相关文章
- SSM 五:Spring核心概念
第五章:Spring核心概念 一.Spring Ioc 优点: 1.低侵入式设计 2.独立于各种应用服务器 3.依赖注入特性将组建关系透明化,降低耦合度 4.面向切面编程的特性允许将通用性任务集中式处 ...
- 第一章 spring核心概念
一.Spring作用:管理项目中各种业务Bean(service类.Dao类.Action类),实例化类,属性赋值 二.Spring IOC(Inversion of Control )控制反转,也被 ...
- Spring 核心概念
Spring 核心概念 引言 本文主要介绍 Spring 源码中使用到的一些核心类 1. BeanDefinition BeanDefinition表示Bean定义,BeanDefinition 中存 ...
- Spring系列(一):Spring核心概念
一.Spring概念 Spring是一种多层的J2EE应用程序框架,其核心就是管理资源组件以及依赖关系,Spring框架为现代基于java的企业应用程序提供了一个全面的编程和配置模型. 二.Sprin ...
- Spring核心概念和案例
一.Spring概念 1.Spring框架概述 轻量级的Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建, Spring框架提供了一个开发平台,用于整合其他技 ...
- Spring核心概念之AOP
一.AOP 的概念 AOP(Aspect Oriented Programming)的缩写,面向切面编程,主要作用就是对代码进行增强处理. 理解面向切面编程的含义:就是在不改变原有程序的基础上为代码增 ...
- Spring核心概念(一)
1.解决JavaEE的轻量级框架. 2.环境搭建 第一步:导入spring的jar包 第二步:导入配置文件(一般写在resource下面) 第三步:创建一个类(bean) 第四步:在主配置文件中注入这 ...
- Spring 核心概念以及入门教程
初始Spring 在学习Spring之前我们首先要了解一下企业级应用.企业级应用是指那些为商业组织,大型企业而创建并部署的解决方案及应用. 这些大型企业级应用的结构复杂,涉及的外部资源众多,事务密集, ...
- Spring核心概念
Spring是一个轻量级的企业级框架,提供了loc容器,aop实现,DAO/OR支持,Web集成等功能,目标是使现有的JAVA EE技术更易用,并促进良好的编程习惯. 依赖注入让组件之间以配置文件的形 ...
随机推荐
- 《VR入门系列教程》之17---发布第一个应用
发布运行 Unity可以支持多种目标平台的发布,包括:桌面端.Web端.移动端.游戏主机端. 发布运行之前的Cubes场景至桌面端,我们先选择File->Build Settin ...
- java练习---7
//程序员:罗元昊 2017.10.7 import java.util.Scanner; public class L { public static void main(String[] args ...
- npm常用命令(原创)
1.对于我们下载下来的node包,假设该包存在依赖情况执行: npm install(或者npm i) 下载依赖包: 下载依赖成功过后,文件夹内会产生package-lock.json文件: 2.下载 ...
- 华三F100 系列防火墙 - 浮动路由联动NQA 实现双线路自动切换
公司 有两条公网线路,一条移动作为日常主用线路,一条联通作为备用线路. 为了实现主备线路自动切换,配置了浮动路由 但浮动路由只能在 主用接口为down状态时才能浮出接管默认路由.如果故障为非物理链路故 ...
- JVM执行原理
,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写 ...
- 【iOS】Masonry 自动布局 MASViewConstraint.m:207 错误
问题详情: Assertion failure 报错原因: make.right.equalTo([_imageView superview]).right.with.offset(-); make. ...
- 【译】Hello Kubernetes快速交互实验手册
原文:https://kubernetes.io/docs/tutorials 翻译:Edison Zhou 一.基本介绍 此交互实验可以让你不用搭建K8S环境就可以轻松地尝试管理一个简单的容器化应用 ...
- 2019前端面试系列——JS高频手写代码题
实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...
- java多线程基础(二)--java线程各状态关系
注意只有可运行(就绪态)和运行中(运行态)可以相互转换
- java并发编程(九)----(JUC)CyclicBarrier
上一篇我们介绍了CountDownlatch,我们知道CountDownlatch是"在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待",即CountDownL ...