Spring
Yes_JiangShuai
默默奋斗的攻城狮 向往掌握技术而不限于技术
展开
-
Spring学习-08:Bean的生命周期
配置Bean的初始化和销毁的方法:bean类:Product.javapackage com.helloSpring.demo4;public class Product { public void setup(){ System.out.println("初始化方法执行..."); } public void teardown(){ System.out.println原创 2017-03-27 11:11:26 · 12713 阅读 · 0 评论 -
Spring学习-06:IOC容器装配Bean(xml配置方式)详解
Spring框架Bean实例化的方式:1、构造方法实例化:(默认无参数)默认情况下采用的就是这种方式2、静态工厂实例化:3、实例工厂实例化:一、无参数构造方法的实例化:(1)新建类Bean1.java:package com.js.demo2;/** * 使用无参数的构造方法来实例化 * @author js * */public class Bean1 {原创 2017-03-26 20:58:22 · 12598 阅读 · 0 评论 -
Spring学习-07:Bean的其他配置
id和name的区别:id遵守xml约束的id的限制,id约束保证这个属性的值是唯一的,而且必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号。name没有这些要求。***** 如果bean标签上没有配置id,那么name可以作为id.***** 开发中Spring和Struts1整合的时候, /login.现在的开发中都使用id属性即可.类的作用范原创 2017-03-27 10:17:15 · 12529 阅读 · 0 评论 -
Spring学习-22:Spring的AOP:基于AspectJ的XML配置方式开发
话不多说,和上一讲相同,配置项目环境。先看前置通知。1、新建目标类,也就是被增强的类:package com.js.demo2;public class ProductDao { public void add(){ System.out.println("add..."); } public void update(){ System.out.println("up原创 2017-04-13 15:40:20 · 794 阅读 · 0 评论 -
Spring学习-21:Spring的AOP:基于AspectJ的注解开发
lAspectJ是一个基于Java语言的AOP框架lSpring2.0以后新增了对AspectJ切点表达式支持l@AspectJ是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面l新版本Spring框架,建议使用AspectJ方式来开发AOPl使用AspectJ需要导入SpringAOP和AspectJ相关jar包:原创 2017-04-13 13:44:38 · 12558 阅读 · 0 评论 -
Spring学习-23:Spring中的JDBC Template(JDBC模板)快速入门
Jdbc Template模板与DbUtils工具类比较类似。JDBC各种持久化技术提供了支持:JDBC : org.springframework.jdbc.core.JdbcTemplateHibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplateIBatis(MyBatis原创 2017-04-13 16:28:28 · 1134 阅读 · 0 评论 -
Spring学习-24:Spring中的JDBC Template(JDBC模板):默认连接池、DBCP连接池、C3P0池的配置
上一讲中,我们编写的测试类如下所示:package com.js.demo1;import org.junit.Test;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;public class S原创 2017-04-13 17:13:08 · 2822 阅读 · 0 评论 -
Spring学习-25:Spring中的JDBC Template(JDBC模板):设置参数到属性文件
如果只是一般情况下使用Spring 的JDBC模板,前面所说的配置方式就足够了,但是Spring也提供了将参数配置到属性文件的方式来避免到配置文件去修改参数。1、在src目录下新建属性文件,文件名任意,我这里取jdbc.properties。2、将参数写入属性文件中,属性名可以任意:jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:原创 2017-04-13 18:39:18 · 1279 阅读 · 0 评论 -
Spring学习-26:Spring中的JDBC Template(JDBC模板):完成增删改的操作
现在开始,介绍一下使用JDBC模板来实现增删改查的操作。首先给大家介绍,增删改的操作。1、定义实体类:package com.js.demo2;public class User { private Integer id; private String name; public Integer getId() { return id; } public void se原创 2017-04-13 19:21:30 · 1381 阅读 · 0 评论 -
Spring学习-27:Spring中的JDBC Template(JDBC模板):完成查询的操作
我们在上一讲没有去做查询的操作,因为这里面的查询呢,要稍微麻烦一点点儿,因为我们说过,JDBC Template跟DBUtils比较类似,DBUtils提供了一系列handler,但是JDBC模板里面没有提供handler,需要我们自己去封装,这就给查询操作增加了一些复杂性。下面,我们来进行查询工作,我们先人为的把查询分为两类:1、简单查询(返回的是一些比较简单的数字、字符串,而不是一个对原创 2017-04-13 20:19:28 · 12439 阅读 · 0 评论 -
Spring学习-28:Spring中的事务管理之事务的回顾
事务:是逻辑上一组操作,要么全都成功,要么全都失败。事务特性-ACID:原子性:事务不可分割一致性:事务执行的前后,数据完整性保持一致.隔离性:一个事务执行的时候,不应该受到其他事务的打扰持久性:一旦结束,数据就永久的保存到数据库.如果不考虑隔离性:脏读:一个事务读到另一个事务未提交数据。不可重复读:一个事务读到另一个事务已经提交数据(update)导致一个事务原创 2017-04-13 20:27:01 · 578 阅读 · 0 评论 -
Spring学习-29:Spring中的事务管理之事务开发常用API的详解
分层开发:事务处在Service层。Spring事务管理高层抽象主要包括3个接口,它们的常见方法:(1)PlatformTransactionManager:平台事务管理器Method Summary voidcommit(TransactionStatus status) 提交 TransactionStatus原创 2017-04-13 20:49:57 · 12216 阅读 · 0 评论 -
Spring学习-35:SSH框架整合之jar包的整理
虽然目前主流的Java EE框架已经由最初的SSH(Spring+Struts+Hibernate),演变为SSM(Spring+SpringMVC+Mybatis),但是SSH框架整合的学习,有助于我们理解Web项目,今天我就简单介绍一下三大框架整合的时候,jar包的整理。准备工作:新建web项目:Spring_ssh11、Struts2:此处以笔者本地的struts-2.1.6-all原创 2017-04-18 10:19:47 · 1147 阅读 · 0 评论 -
Spring学习-30:Spring中的事务管理之环境搭建
Spring的事务管理分成两类:1、 编程式事务管理:手动编写代码完成事务管理。在实际应用中很少使用,通过TransactionTemplate手动管理事务。2、声明式事务管理:不需要手动编写代码,配置。使用XML配置声明式事务,开发中推荐使用(代码侵入性最小),Spring的声明式事务是通过AOP实现的。事务的讲解我们以转账案例为基本场景,下面介绍转账案例的环境准备:(1)创建数原创 2017-04-13 21:24:46 · 11583 阅读 · 0 评论 -
Spring学习-31:Spring中的事务管理之手动编码的方式
手动编码的方式完成事务管理:需要事务管理器,它才是真正管理事务的对象。Spring提供了事务管理的模板,也就是一个工具类,可以省写一些代码。第一步,注册事务管理器、事务管理模板,并在业务层注入事务管理模板,基于applicationContext.xml的配置。 修改业务类,添加事务模板属性。package com.js.原创 2017-04-14 11:06:13 · 607 阅读 · 0 评论 -
Spring学习-32:Spring中的事务管理之声明式事务(原始方式,基于TransactionProxyBean)
手动编码的方式实现事务的管理代码量大,代码有侵入性。怎么解决这些问题呢?其实,我们可以考虑一个问题:事务管理其实就是在操作之前把connection打开,操作完毕之后关闭connection,并确保操作的事务性。是不是类似于增强了原来的数据库操作呢?所以,声明式事务就是基于功能的增强。原始方式的声明式事务管理,是基于一个类:TransactionProxyBean新建一个项目,详见Sp原创 2017-04-14 11:21:21 · 11697 阅读 · 0 评论 -
Spring学习-33:Spring中的事务管理之声明式事务(基于切面自动代理)
声明式事务的管理:(自动代理,基于切面),这种方式需要重点掌握。首先,预备工作是将项目恢复到最原始版本,详见环境搭建。第一步:导入相应的jar包。aspectJ包(两个,详见aspectJ部分)第二步:引入相应的约束 aop约束、tx约束<beans xmlns="http://www.springframework.org/schema/beans" xmlns原创 2017-04-16 16:48:04 · 793 阅读 · 0 评论 -
Spring学习-20:Spring的AOP:自动代理
前面所讲的代理,都必须手动配置。下面来介绍一下自动代理。前面的案例中,每个代理都是通过ProxyFactoryBean织入切面代理,在实际开发中,非常多的Bean每个都配置ProxyFactoryBean开发维护量巨大。自动创建代理(*****基于后处理Bean.在Bean创建的过程中完成的增强.生成Bean就是代理。)(1)BeanNameAutoProxyCreator根据Bean原创 2017-04-12 11:25:33 · 12451 阅读 · 0 评论 -
Spring学习-05:Myeclipse配置schema约束
配置了beans的applicationContext.xml文件内容:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sp原创 2017-03-26 19:45:44 · 1481 阅读 · 0 评论 -
Spring学习-09:Bean的属性的注入
类的属性的注入:1、通过接口方式注入:2、原创 2017-03-29 14:12:36 · 12600 阅读 · 0 评论 -
Spring学习-10:Bean的集合属性的注入
上节介绍了Bean的属性的注入,这一节我们详细说说集合属性的注入。新建bean:package com.js.demo7;/** * 拥有集合属性的bean * @author js * */import java.util.List;public class CollectionBean { private List list; public void setList原创 2017-03-29 15:49:05 · 12697 阅读 · 0 评论 -
Spring学习-11:配置文件引入的问题(配置文件过于庞大,不便于修改的处理方法)
当配置文件中的配置很多,不便于修改的时候,有如下几种解决方案:如图所示,我们建立两个配置文件:applicationContext.xml、applicationContext2.xml1、我们可以把配置信息分别放在几个文件中,因为加载配置文件时,可以一次性加载多个配置文件。ApplicationContext applicationContext = new ClassPat原创 2017-03-30 15:16:35 · 12879 阅读 · 0 评论 -
Spring学习-12:Spring的Bean的装配:注解的方式
接下来,我们来学习使用注解的方式来实现属性的注入,常见的框架如Struts2、Hibernate等都支持注解的开发。虽然完全使用注解在开发中并不是特别多,但是在框架整合的时候往往会用到注解的方式。IOC装配Bean(使用注解的方式):Spring2.5中引入了使用注解去定义Bean:@Component描述Spring框架中的Bean。首先,编写一个bean:package com原创 2017-03-30 16:31:31 · 13069 阅读 · 0 评论 -
Spring学习-13:Spring的XML和注解的结合使用
实际开发中使用XML还是注解?XML:bean的管理注解:注入属性的时候比较方便两种方式的结合:一般使用XML注册bean,使用注解来进行属性注入。在applicationContext.xml中配置举个简单的例子:新建3个bean:package com.js.demo4;public class OrderDao {}package原创 2017-03-30 17:51:43 · 2437 阅读 · 0 评论 -
Spring学习-14:Spring整合web开发
在Web应用中使用Spring,除了需要导入Spring基本开发jar包、commons-logging的jar包(详见Spring学习-02)之外,还需要导入Spring web开发jar包:spring-web-3.2.0.RELEASE.jar(在一般情况下,不引入这个包,开发也不会有什么问题。我们先不引入这个包,来看看不引会有什么问题。)1、整合Spring和Servlet:举个例原创 2017-03-31 10:46:56 · 3824 阅读 · 0 评论 -
Spring学习-15:Spring整合Junit
Spring开发中集成Junit测试。1、程序中有Junit环境。右击项目,buildpath,add Libraries:next,Junit4,finish。2、导入jar包:Spring与Junit整合的jar包 spring-test-3.2.0.RELEASE.jar这样功能就添加完成了,下面我们来测试一下这与之前的@Test方式有什么不同:编写测试类:p原创 2017-03-31 11:03:53 · 13089 阅读 · 0 评论 -
Spring学习-17:AOP底层原理
Spring中AOP的底层原理:其实就是代理机制,这里边的代理有两种:1、动态代理(JDK中使用)*JDK的动态代理,对实现了接口的类生成代理。没有实现接口的类,就无法生成代理对象了。例:public class JDKProxy implements InvocationHandler{ private UserDao userDao; public JDKProxy(原创 2017-03-31 13:22:56 · 12965 阅读 · 0 评论 -
Spring学习-16:AOP的概述
1.1 AOP的概述:1.1.1 什么是AOP: AOP Aspect Oriented Programing 面向切面编程 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存) Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码 AspecJ是一个基于Java语言的原创 2017-03-31 11:22:02 · 13044 阅读 · 0 评论 -
Spring学习-18:Spring的AOP:不带有切点的切面
Spring中的AOP的学习,从两个角度:1、Spring的传统AOP(不作重点)2、Spring的AspectJ(重点)一、Spring中的传统AOPAOP:不是由Spring定义,而是由AOP联盟来定义。AOP联盟为通知Advice定义了org.aopalliance.Interface.Advice。Spring按照通知Advice在目标方法的连接点位置,可以分为五类前置通知原创 2017-04-11 15:21:19 · 12978 阅读 · 0 评论 -
Spring学习-19:Spring的AOP:带有切点的切面
带有切点的切面,就是可以针对目标对象的某些方法进行增强。使用普通Advice作为切面,将对目标类所有方法进行拦截,不够灵活,在实际开发中常采用带有切点的切面。常用PointcutAdvisor实现类,它有两个接口:1、DefaultPointcutAdvisor:最常用的切面类型,它可以通过任意Pointcut和Advice 组合定义切面2、RegexpMeth原创 2017-04-11 16:21:29 · 12875 阅读 · 0 评论 -
Spring学习-01:学习路线综述
Spring_day01总结今日内容l Spring框架的概述l Spring的快速入门l Spring 工厂接口l 在MyEclipse配置Spring的xml文件提示l IoC容器装配Bean(xml配置方式)l Ioc容器装配Bean(注解方式)l 在web项目中集成Springl Spring 整合 junit4原创 2017-03-26 10:57:56 · 4551 阅读 · 0 评论 -
Spring学习-02:入门案例
1、下载Spring的开发包官网和github上下载比较麻烦,此处提供Spring3版本的网盘下载地址(链接:http://pan.baidu.com/s/1i497TsT 密码:gurb),初学者入门足够用了。*.RELEASE-dist.zip-Spring开发包docs:spring框架api和规范libs:spring开发的jar包schema:xml的约束文件*.原创 2017-03-26 13:01:37 · 752 阅读 · 0 评论 -
Spring学习-03:ApplicationContext加载配置文件的两种方式
Spring框架加载配置文件:ApplicationContext应用上下文,加载Spring框架配置文件。它有两个子类:ClassPathXmlApplicationContext:加载classpath下面的配置文件public void demo2(){ //创建一个工厂类 ApplicationContext applicationContext = new Cla原创 2017-03-26 16:34:05 · 1243 阅读 · 0 评论 -
Spring学习-04:BeanFactory和ApplicationContext
在Spring学习-03中,介绍了ApplicationContext的两个子类,其中类之间的继承关系如下图所示:ApplicationContext间接的继承了BeanFactory类。在myeclipse中追踪源代码:public interface ApplicationContext extends EnvironmentCapable, ListableBeanFacto原创 2017-03-26 16:54:14 · 3448 阅读 · 0 评论 -
Spring学习-34:Spring中的事务管理之声明式事务(基于注解)
Spring中的事务管理之声明式事务(基于注解)是基于,它默认查找名称为transactionmanager的事务管理器Bean。这个很简单,请看例子。首先,恢复项目环境。详见环境搭建。1、配置applicationContxt.xml:配置事务管理器、并开启注解的事务管理 <beans xmlns="http://www.springframework.org/schema/原创 2017-04-16 17:06:58 · 11266 阅读 · 0 评论