
Spring
文章平均质量分 78
Jintao_Ma
这个作者很懒,什么都没留下…
展开
-
一个基本的web项目(无任何框架)
纸上得来终觉浅本着从零开始学习Spring的态度,从WEB项目学习开始,在使用Spring之前首先要明确在不使用Spring的情况下的Web项目是什么样的:1)首先一个基本的Web项目如下图所示:程序入口是login.jsp,用一个登陆操作来展示一个基本的Web项目,其中涉及到数据库,数据库连接,实体类,DAO层,Service层和Control层。一个完全手写的Demo,放在原创 2016-04-03 18:05:57 · 14922 阅读 · 1 评论 -
Spring中的WebAppRootListener
WebAppRootListener这个listener的作用就是监听web.xml中的配置param-name为webAppRootKey的值: webAppRootKey myroot然后配置一个然后配置一个监听器: org.springframework.web.util.WebAppRoo原创 2016-08-11 16:55:51 · 6570 阅读 · 0 评论 -
Spring 源码梳理(五) FactoryBean与BeanFactory
1.什么是FactoryBean,,后缀是'Bean'证明本质上仍然是一个Bean,仍然要放入BeanFactory中,只是它实现了FactoryBean接口;2.特点:根据该Bean的id从BeanFactory中获取的实际上是getObject返回的对象,要获得该FactoryBean本身,获取时需要加上&;3.为什么要使用factoryBean? 由于继承这个接口之后可以从getO原创 2016-08-31 15:24:47 · 851 阅读 · 0 评论 -
Spring 源码梳理(四) BeanFactoryPostProcessor
BeanFactoryPostProcessor上篇介绍了BeanPostProcessor(后面以Post代替),这篇讲的是BeanFactoryPostProcessor(后面以PostFactory代替),后者也是可以修改Bean的配置。 1.它们的区别是什么?不是网上说的“BeanPostProcessor不能够修改Bean的配置,而BeanFactoryPostProcess原创 2016-08-30 13:52:24 · 862 阅读 · 1 评论 -
Spring 源码梳理(六) BeanNameAware和BeanFactoryAware
BeanNameAware和BeanFactoryAware1.BeanNameAware和BeanFactoryAware概念BeanNameAware:实现该接口的Bean能够在初始化时知道自己在BeanFactory中对应的名字。BeanFactoryAware:实现该接口的Bean能够在初始化时知道自己所在的BeanFactory的名字。2.继续前面文章的分析,看这一段源码原创 2016-09-01 16:13:30 · 2690 阅读 · 0 评论 -
Spring 源码梳理(七) 注解源码
1.Spring的注解可以分为两类,一个是类上的注解,如@Component; 一个是类内部的注解,如@Autowired;Spring对两种形式的注解的处理是不同的,在Spring的初始化周期中注解生效的时间也不同。2.使用实例来分析一下(至于项目搭建的步骤见系列第一部分,源码梳理(一))App.javapackage com.mycompany.app;import org.s原创 2016-09-05 20:20:19 · 1595 阅读 · 0 评论 -
Spring 源码梳理(一) ClassPathXmlApplicationContext
1.为什么要分析Spring源码:1)有意往架构上发展,分析Spring可清楚它做了哪些事情,如何做这些事情2)Spring本身是对Java的丰富和发展,阅读可提高自己的水平2.怎样分析Spring源码:1)源码本身就是注释,是对平时应用的解释,所有没有必要句句分析,否则与把所有代码贴上没有区别2)不关注相关方法所在类,接口,以及类之间的继承关系,只关注方法做了哪些事情即可原创 2016-08-25 10:30:56 · 3412 阅读 · 1 评论 -
Spring 源码梳理(八) Spring常用配置
前面的文章主要分析了Spring的生命周期,Spring如何处理它的配置文件,Bean的前置和后置处理器,Spring的后置处理器等; 这些都是与Spring Bean相关的内容,实际上都属于Spring两大特性中的IOC。 后面会介绍Spring的另一个特性AOP,这篇总结下Spring的IOC特性在项目中的原理。1.加载配置文件时用到的property-placeholder这个配置是原创 2016-09-23 17:37:43 · 779 阅读 · 0 评论 -
Spring 源码梳理(九) AOP与动态代理
SpringAOP的核心是动态代理,就从动态代理开始分析,然后就会谈到静态代理,以及为什么会有代理这个说法,后面逐一分析:1.什么是代理,为什么会有代理?类甲的代理就是代替甲来完成甲的功能,比如实际上就是有点像房产中介,本身不提供房产,但是可以帮助开发商把房子卖出去,并且在卖的过程中还能做一些操作,赚的利益。那为什么会有代理呢? 就类甲来说,我们想执行这个类甲的相关方法,但是在执行的前后想原创 2016-10-11 23:09:27 · 1018 阅读 · 0 评论 -
java动态代理
上次学习和了解了java反射机制,理解动态代理就简单些了。原创 2016-04-09 20:14:22 · 852 阅读 · 0 评论 -
Mybatis,Spring集成与事务配置
这篇主要讲两个问题,一个是Spring与Mybatis的集成,另一个是Mybatis与Spring的事务配置一.Mybatis与Spring的集成,需要先掌握的:1)关于Mybatis的配置和使用见上篇文章http://blog.youkuaiyun.com/Jintao_Ma/article/details/52829490 ; 2)如何创建Maven项目http://blog.youkuaiyun.com原创 2016-10-19 11:05:41 · 3857 阅读 · 1 评论 -
Spring 源码梳理(二) BeanPostProcessor
BeanPostProcessor1.BeanPostProcessor的概念BeanPostProcessor是一个接口,它可以使得继承它的类成为一个"回调类"(自己起的称呼),继承的方法成为回调函数;它就像Windows中Hook Api ,就是一个钩子函数,先注册这个函数,且指定一个事件目标;那么当一个事件在执行前或者后时,就会触发这个函数的执行,可以在这个事件的前后做一些操作,原创 2016-08-26 15:41:22 · 1628 阅读 · 1 评论 -
Spring 源码梳理(三) 再谈BeanPostProcessor
再谈BeanPostProcessor上篇文章介绍的是BeanPostProcessor的用法,在最后留下了一个问题,对于Spring中的Bean属性'Lazy-init'(延迟加载),当Hook类(BeanPostProcessorApp)或被Hook的类(App)具有这个属性时,会有什么样的表现。1.接着前面文章的已有的配置,首先我们分别在App和BeanPostProcessor原创 2016-08-29 15:23:04 · 794 阅读 · 0 评论 -
Spring 理解IOC
纸上得来终觉浅做笔记一个重要的问题是,在没有系统的掌握一项技能之前,无法系统的对其进行总结。 实际上,能够做的就是盲人摸象,一点点总结和记录,在回头的时候做更深入的总结和理解1.初识Spring IOC1) IOC即控制反转,inverse of control, 既然是反转,原来的控制权在哪里?,现在的控制权又在哪里?,如何反转。 首先看一张对IOC进行描述的图片:原创 2016-04-05 10:58:25 · 905 阅读 · 0 评论 -
Spring 依赖注入四种方式
纸上得来终觉浅1.构造器注入AnimalDao:package com.roadArchitectWeb.dao;public interface AnimalDao { /*所有动物有一个说话的方法*/ public void say();}CatDaoImpl:package com.roadArchitectWeb.dao;public class CatDaoI原创 2016-04-05 19:35:29 · 2423 阅读 · 0 评论 -
Spring Bean配置细节
纸上得来终觉浅学习下bean配置的语法,毕竟是实践性知识,不值得花很多工夫,简单的验证并且记录下:1. 使用构造器注入时可以指定index,指定顺序2. 使用构造器注入时可以指定type,指明类型3.bean配置只使用id,不用name4.引用特殊字符要通过 ![CDATA[标签里,不能用在value属性里5.内部bean,不被外部引用,所以不需要设置id6.关于be原创 2016-04-05 21:33:57 · 590 阅读 · 0 评论 -
depends-on的用法
纸上得来终觉浅首先要了解depends-on用来表示一个bean A的实例化依靠另一个bean B的实例化, 但是A并不需要持有一个B的对象,如果需要的话就不用depends-on,直接用依赖注入就可以了。1)depends-on使用实例public class person { public static void say(){ System.out.println("pers原创 2016-04-07 20:00:59 · 28223 阅读 · 3 评论 -
泛型依赖注入
纸上得来终觉浅关于泛型依赖注入,只明白它的思想,考虑了整个下午都不明确它所应用的场合,暂时把用法记下来,后面再学习整理。使用示例如下:public class User {}public class Respository{}@Repositorypublic class UserResponsitory extends Respository{}public clas原创 2016-04-08 16:12:06 · 1224 阅读 · 0 评论 -
spring4 hibernate4(5) 整合
纸上得来终觉浅1.前面学了Spring具有两个重要特性,IOC和AOP,利用这些特性可以优化代码框架; 既然如此,那么在使用Hibernate时,就可以利用Spring框架对hibernate的框架进行优化。这就是Spring hibernate整合。2.Spring可以优化Hibernate的哪些部分?1)在未使用hibernate之前,session的获取一般通过单例模式从sess原创 2016-04-25 16:38:26 · 3162 阅读 · 1 评论 -
java反射机制
本来是要学习Spring Aop,无奈Sping Aop首先试着从字面来理解。反射,一种计算机处理方式,是程序可以访问,检测和修改它本身状态或行为的一种能力。java反射机制主要提供了一下功能,用自己的理解来描述:1.根据对象找到类2.根据类找到其中的成员变量和方法3.以区别于new的形式创建一个对象4.以区别于“对象.方法”的形式执行方法(这是反射机制在动态代理中的用处,原创 2016-04-09 09:53:48 · 535 阅读 · 0 评论 -
factorybean用法
纸上得来终觉浅1.什么是factorybean?factorybean是一个工厂类接口,用户可以通过实现该接口来定制实例化bean的逻辑getObject():返回factorybean创建的bean实例isSingleton():指定factorybean创建的bean实例的作用域getObjectType():指所创建的bean实例的类型2.factorybea原创 2016-04-08 09:40:11 · 1056 阅读 · 0 评论 -
注解的使用
纸上得来终觉浅1.基本注解@Component 标识了一个受Spring管理的组件@Respository 标识持久层组件@Service 标识服务层组件@Controller 标识表现层组件@Autowires 将bean注入@Qualifier 指定注入的bean的名字受标识的组件遵循Spring命名策略,将类的第一个字母小写,或者手动指定名字。 之后原创 2016-04-08 10:27:43 · 1522 阅读 · 0 评论 -
spring AOP
纸上得来终觉浅前面学习和java反射机制和动态代理,再学习Spring Aop很容易明白,首先需要两个jar包:com.springsource.org.aopalliance-1.0.0.jar 和 com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar在http://download.youkuaiyun.com/download/jintao原创 2016-04-09 23:05:43 · 887 阅读 · 0 评论 -
Spring声明式事务
纸上得来终觉浅1.事务的概念简单来说就是一个原子操作,要么操作中的几个动作全部执行,要么全部不执行。2.ACID(原子性,一致性,隔离性和持久性)是事务应该满足的条件,但是一般来说隔离性才是程序员应该做的,因为隔离性其实就是对并发的控制,而经常提及的数据的脏读,幻读等都是并发引起的。 3.事务在代码中使用; 接着上篇文章配置好的Spring+Hibernate的环境: @Autow原创 2016-04-25 17:24:53 · 1220 阅读 · 1 评论