spring框架

Spring-AOP

送分小仙女□ 提交于 2020-03-08 14:29:49
Spring-AOP 1. AOP 基本概念 显示中有一些内容并不是面向对象技术(OOP)可以解决的,比如事务处理。在 JDBC 代码中,最繁琐的问题就是无穷无尽的 try ... catch ... finally ... 语句 和 数据库资源关闭 的问题,而且代码会存在大量的重复,而你又不能不写。 一个正常执行的 SQL 的逻辑步骤如下: 打开通过数据库连接池获得数据库链接资源,并做一定的设置工作。 执行对应的 SQL 语句(通常是增删改),对数据进行操作。 如果 SQL 执行过程中发生异常,回滚事务。 如果 SQL 执行过程中没有发生异常,最后提交事物。 到最后的阶段,需要关闭一些连接资源。 参看上述流程,你会发现无论是执行什么具体的 SQL,流程都是一样的!即, 到了特定时刻一定会执行某个特定操作 ,并不因 SQL 的不同而不同 ! 在 OOP 中,模块化单元是『类』(Class),而在 AOP 中,模块化的单元是『 切面』(Aspect)。 AOP 最早由 AOP 联盟的组织提出的,并制定了一套规范。Spring AOP 遵守 AOP 联盟的规范。 Spring 的 AOP 的底层用到两种代理机制: JDK 动态代理 如果目标类遵循某个接口,Spring AOP 底层采用 JDK 方案生成代理对象 Cglib 动态代理 如果目标类不遵循任何接口,Spring AOP

Spring data JPA 快速入门

こ雲淡風輕ζ 提交于 2020-03-08 13:26:58
1需求 ​ 向客户中插入一条数据 ​ 如果使用Jpa框架可以不用先建表 可以使用框架生成表 ​ 2 实现步骤 ​ a 创建工程 使用maven管理工程 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.hibernate.version>5.0.7.Final</project.hibernate.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--hibernate 对jpa的支持--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${project

跟我猜Spring-boot:依赖注入

安稳与你 提交于 2020-03-08 12:03:06
 依赖注入 引&目标 本篇是《跟我猜Spring-Boot》系列的第二篇(Oh,我竟然已经写了10篇了,真不容易)。 在上一篇中,我们实现了 Bean 的创建,但是仅仅是创建而已,并没有真正的实现Bean的注入。那么在今天这篇中,我们要去实现bean的自动注入。 我们之前已经在工程中定义了 SimpleService 和 SimpleController 这两个类,那么这篇文章,我们要把 SimpleService 自动注入到 SimpleController 中; SimpleController.java @Service public class SimpleController { @Autowired private SimpleService simpleService; public SimpleController(){ System.out.println("the controller is created!"); } } 因为目前只是一个控制台程序,没办法进行真正的调用和展示,所以我给 SimpleService 加一个输出,用来表示这个类的的唯一性。 这样, SimpleService 就变成了这样: SimpleService.java @Service public class SimpleService { private String

Spring模块简介

放肆的年华 提交于 2020-03-08 11:28:28
Spring 功能简介 Spring 之核心模块 模块名称 核心功能 spring-core 依赖注入IOC与DI的基本实现 spring-bean bean工厂与bean的装配 spring-context 定义基础的spring-context上下文,即IOC容器 spring-context-support 对spring IOC容器的扩展支持,以及IOC子容器 spring-context-indexer spring类管理组件和Classpath扫描 spring-expression spring表达式语言 Spring 之面向切面编程 模块名称 核心功能 spring-aop 面向切面编程模块,整合Asm,CGLIB,JDKProxy spring-aspects 集成AspectJ AOP应用框架 spring-instrument 动态Class Loading模块 Spring 之数据访问与集成 模块名称 核心功能 spring-jdbc spring 提供JDBC抽象框架的主要实现模块,用于简化Spring Jdbc操作 spring-tx spring JDBC事务控制实现模块 spring-orm 主要集成Hibernate,Java Persistence Api(JPA) 和 Java Data Objects(JDO) spring-oxm java

狂啃maven

让人想犯罪 __ 提交于 2020-03-08 10:50:20
一、maven的本地安装 1、 maven下载网址 建议大家下载3.5.2的版本 2、解压后打开目录****\apache-maven-3.5.2\conf,然后找到settings.xml文件,可以用记事本编辑修改里面的部分内容,找到如下内容 然后在这一段的下一行添加一行代码,成为这个模样 添加的这一段代码就是注释里面的最后一行,将他复制然后然后修改中间的路径为自己本地仓库文件夹的路径,当然在这之前得事先创建好这个文件夹,只需创建好文件夹即可。我的本地仓库文件夹就是在D盘下my_maven_local_repository1文件夹。只要大家稍微会点英语就能看明白注释里面的内容是什么意思,是可以修改本地仓库的位置,因为默认的位置是在C盘用户目录下的.m2文件夹下,如果不是很懂英语的话就不要妄加猜测了,以免迷失心智,走火入魔 3、然后还是要修改settings.xml里面的内容,找到这 然后修改为 道理是和第二部一样的,注意添加代码的位置。这一步是为了从阿里云的maven镜像里下载所需的依赖,原来的实在太慢。 二、创建一个maven项目 IDE:idea 2019.1 java:jdk 12 版本没有大影响,现在很多人在用jdk 8,我感觉没啥影响,8是一个长期维护版本,并且可以满足日常程序开发的需求,而且比较稳定,但是12也不是不行,大家可以都下载,到时候修改环境变量就可以。

初识spring

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-08 09:39:03
   概述:   Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。 Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。 Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使 用,通过启用基于 POJO(简单的Java对象) 编程模型来促进良好的编程实践。   优点:轻量级:Spring在大小和透明性方面属于轻量级,基础版本的Spring框架大约只有2MB。控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。容器:Spring包含并管理对象的配置及生命周期。MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。事务管理:Spring对本地业务和全局业务(JAT)提供了统一的事务管理接口。异常处理:Spring提供了一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出的异常

spring依赖注入和控制反转

烈酒焚心 提交于 2020-03-08 09:23:22
2017-11-15 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846 1.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。 在Java开发中, Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建; 谁控制谁?当然是IoC 容器控制了对象;控制什么

8 -- 深入使用Spring -- 2...1 搜索Bean类

假如想象 提交于 2020-03-08 07:55:48
      8.2.1 搜索Bean类         既然不再使用Spring配置文件来配置任何Bean实例,那么只能希望Spring会自动搜索某些路径下的Java类,并将这些Java类注册成Bean实例。         tips:Rails框架的处理比较简单,它采用一种所谓的“约定优于配置”的方式,它要求将不同组件放在不同路径下,而Rails框架中是加载固定路径下的所有组件。         Spring没有采用“约定优于配置”的策略,Spring依赖要求程序员显式指定搜索那些路径下的Java类,Spring将会把合适的Java类全部注册成Spring Bean。         Spring通过使用一些特殊的Annotation来标注Bean类,使Spring识别被标注的Java类当成Bean处理。         Spring提供了如下几个Annotation来标注SpringBean:           ⊙ @Component : 标注一个普通的Spring Bean类。           ⊙ @Controller : 标注一个控制器组件类。           ⊙ @Service : 标注一个业务逻辑组件类。           ⊙ @Repository : 标注一个DAO组件类。         如果需要定义一个普通的Spring Bean ,则直接使用

JAVAEE作业

旧时模样 提交于 2020-03-08 04:04:02
1、完成例题1.3spring入门程序。修改根包为edu.javaee.spring 创建Packaje命名为edu.javaee.spring 创建Java Class ------ peop.java 编写一个say方法 package edu.javaee.spring; public class peop { public void say() { System.out.println(“learn javaee”); } } 配置spring-config.xml文件 <?xml version="1.0" encoding="UTF-8"?> <bean id="peop" class="edu.javaee.spring.peop"> </bean> 1 2 3 4 5 6 7 8 创建Java Class ------ test.java(用于测试spring ) package edu.javaee.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class test { public static void main

Spring AOP 实现原理

别等时光非礼了梦想. 提交于 2020-03-08 03:49:50
什么是AOP 它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹。 使用“横切”技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。Aop 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。正如Avanade公司的高级方案构架师Adam Magee所说,AOP的核心思想就是“将应用程序中的商业逻辑同对其提供支持的通用服务进行分离。” 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式