第五章 Spring核心概念

LxOwz 2019-08-31 原文

第五章 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.32 使用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(..): “..” 表示匹配所有参数个数和类型

Com.service.*.*(..)  这个表达式匹配com.service包下所有类的所有方法

Com.service..*.*(..): 这个表达式匹配com.service包及其子2包下所有类的所有方法。

发表于
2019-08-31 20:44 xie代码 阅读() 评论() 编辑 收藏

 

版权声明:本文为LxOwz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/LxOwz/p/11440389.html

第五章 Spring核心概念的更多相关文章

  1. 第五章、web服务器

    一、web服务器   Web服务器就是整个万维网的骨干,广义上来说Web服务器既可以用来表示Web服务器的软件 […]...

  2. 第五章 Logistic回归

    第五章 Logistic回归 假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线), […]...

  3. 第五章 JS典型特效

    注意: 1、JS在HTML中从上到下依次执行,所以获取元素的结果与JS的位置有关 <!DOCTYPE h […]...

  4. 第五章 信息显示与搜索文件命令

    5.1 uname 显示系统信息 uname -a  可以看到更多的信息,显示所有 Linux oldbody […]...

  5. 第五章、心理理论

    第五章、心理理论 目录 第五章、心理理论 一、心理理论能力缺损对日常生活的影响 (一)难以通过眼神获取社会性和 […]...

  6. 第五章 FISCO BCOS 区块链浏览器的部署

        想了解相关区块链开发,技术提问,请加QQ群:538327407(已满),群2:135019400   […]...

  7. 第五章 python入门

    一、编程语言介绍 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什 […]...

  8. 第五章 触发器

    一  SR锁存器 SR锁存器也可以用与非门构成 电频触发器 电路结构和工作原理 触发信号称为时钟信号 SR触发 […]...

随机推荐

  1. 使用Electron将Web项目打包成windows桌面应用

    1.从官网下载node.js并安装。 2.有不少人反映使用此命令安装Electron不成功,可能是国外镜像的问 […]...

  2. 车载导航应用中基于Sketch UI主题定制方案的实现

    1.导读 关于应用的主题定制,相信大家或多或少都有接触,基本上,实现思路可以分为两类: 内置主题(应用内自定义 […]...

  3. 12maven部署web工程

      首先创建一个maven打包类型为war的工程   创建完项目后,执行下图操作:          然后创建 […]...

  4. b2c、b2b2c旅游网站管理系统,旅游网站程序源码

    erdaicms是什么?cms是Content Management System的缩写,意为”内容管理系统” […]...

  5. 软件工程第三次作业——关于软件质量保障初探

    一、对教材与参考资料阅读后关于软件质量保障你的体会是什么? (1) 质量是一个企业的代名词,质量都做不好,客户 […]...

  6. 一维,环状,二维数组最大连续子数组和

    (一)一维最大连续子数组和 解法思路:在一段数组中,以每个数组下标为末尾的最大连续子数组,判断前一个连续数组和 […]...

  7. 一个很简单的Java调用WSDL示例 (转载)

            SOAP, WSDL, JAVA 一个很简单的WSDL调用,不使用框架,就是个很轻量级的Cli […]...

  8. Matlab图像处理系列2———空间域平滑滤波器

    注:本系列来自于图像处理课程实验,用Matlab实现最主要的图像处理算法 本文章是Matlab图像处理系列的第 […]...

展开目录

目录导航