Spring
文章平均质量分 77
golden_lion
这个作者很懒,什么都没留下…
展开
-
spring IOC源码分析(1)
1.何谓spring IOC 何谓Spring IOC?书上谓之“依赖注入”,那何谓“依赖注入”? 作为一个Java程序猿,应该遇到过这样的问题,当你在代码中需要使用某个类提供的功能时,你首先需要new一个对象,给它传递必要的参数,然后才能使用它提供的功能,最后释放对象占用的内存,当然了这个在Java不需要你自己去干了。这也就是说你需要自己去管理变量的整转载 2016-04-27 10:30:44 · 283 阅读 · 0 评论 -
深入Spring IOC源码之ResourceLoader
在《深入Spring IOC源码之Resource》中已经详细介绍了Spring中Resource的抽象,Resource接口有很多实现类,我们当然可以使用各自的构造函数创建符合需求的Resource实例,然而Spring提供了ResourceLoader接口用于实现不同的Resource加载策略,即将不同Resource实例的创建交给ResourceLoader来计算。public in转载 2016-07-22 15:34:58 · 273 阅读 · 0 评论 -
Criteria 和 DetachedCriteria的区别与使用
Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需Session,DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name)进行Detach转载 2016-07-22 15:36:05 · 442 阅读 · 0 评论 -
spring之BeanFactoryAware接口
springBeanFactoryAware (转)要直接在自己的代码中读取spring的bean,我们除了根据常用的set外,也可以通过spring的BeanFactoryAware接口实现,只要实现setBeanFactory方法就可以,private BeanFactory beanFactory; public转载 2016-07-22 15:36:34 · 7496 阅读 · 1 评论 -
Spring回调方法DisposableBean接口
除了自定义的destroy-method.还可以实现DisposableBean接口,来回调bean销毁时候执行的方法,这个接口有一个destroy方法,生命周期是是destroy----bean销毁---自定义的destroy方法 SimpleBean.java123456789转载 2016-07-22 15:37:11 · 649 阅读 · 0 评论 -
java中InvocationHandler 用于实现代理。
以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy、InvocationHandler,下面从InvocationHandler接口中的invoke方法入手,简单说明一下Java如何实现动态代理的。 首先,invoke方法的完整形式如下:public Object invok转载 2016-07-22 15:37:56 · 3907 阅读 · 0 评论 -
Spring之FactoryBean
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接 口的Bean,根据该Bean的Id从BeanFactory中获取的实际转载 2016-07-22 15:38:41 · 323 阅读 · 0 评论 -
Spring 事务传递教程_有实例
通过这篇文章,你将学习到Spring框架中中事务的传递简介在处理Spring管理的事务时,开发人员可以以传播的方式定义事务的行为。换句话说,开发人员能够决定业务方法如何被封装在逻辑和物理事务中。来自不同Spring bean的不同方法可以在相同的事务范围或分割为多个嵌套的事务中执行。这可能导致像内部事务产生的结果如何影响外部事务的细节。我们将在下一节中看到Spring中不同的传播机转载 2016-07-22 15:39:19 · 1168 阅读 · 1 评论 -
“Transaction rolled back because it has been marked as rollback-only”
spring的声明事务提供了强大功能,让我们把业务关注和非业务关注的东西又分离开了。好东西的使用,总是需要有代价的。使用声明事务的时候,一 个不小心经常会碰到“Transaction rolled back because it has been marked as rollback-only”这个异常。有时候又常常会纳闷,"我已经try-catch了,为什么还这样呢?"转载 2016-07-22 15:40:07 · 547 阅读 · 0 评论 -
Spring利用JDBCTemplate实现批量插入和返回id
1、先介绍一下java.sql.Connection接口提供的三个在执行插入语句后可取的自动生成的主键的方法://第一个是 PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException; 其中autoGenerateKeys 有两个可选值:Statement.R转载 2016-07-22 15:40:39 · 31239 阅读 · 1 评论 -
脱离 Spring 实现复杂嵌套事务,之一(必要的概念)
事务传播行为种类Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:表1事务传播行为类型事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。转载 2016-07-22 15:43:09 · 2684 阅读 · 0 评论 -
@Autowired与@Resource的区别
1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qua转载 2016-07-22 15:44:48 · 344 阅读 · 0 评论 -
struts+spring action应配置为scope="prototype"
"personAction" scope="prototype" class="quickstart.action.PersonAction"> "personService" />在配置文件中,bean默认是单例模式,应用服务器启动后就会立即创建bean,以后就可以重复使用。这带来一个问题,bean的全局变量被赋值以后,在下一次使用时会把值带过去。也就是说,bean是有状态转载 2016-07-12 13:57:31 · 470 阅读 · 0 评论 -
IoC-DI容器理解
http://wenku.baidu.com/view/d4be001a59eef8c75fbfb3e6.html转载 2016-07-12 13:58:57 · 271 阅读 · 0 评论 -
<context:component-scan>使用说明
在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean注意:如果配置了那么标签就可以不用再xml中配置了,因为前者包含了后者。另外还提供了两个子标签1. 2. 在说明这两个子标签前,转载 2016-07-23 13:14:34 · 521 阅读 · 0 评论 -
spring bean id和bean name的区别
今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下: 首先澄清一个概念: 同名bean:多个bean 有相同的 name 或者 id,称之为同名bean 的id 和 name的区别 id和name都是spring 容器中中bean 的唯一标识符。 id: 一个bean的唯一标识 , 命名格式必须符合XML ID属性的命名规范转载 2016-07-23 13:15:03 · 2970 阅读 · 1 评论 -
spring中lazy-init详解
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化(也就是依赖注入)。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。 该bean默认的设置为:转载 2016-07-23 13:16:29 · 823 阅读 · 0 评论 -
Spring+Quartz的版本问题
使用Spring配置管理Quartz的时候会遇到下面的异常:Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super转载 2016-06-20 10:28:50 · 1445 阅读 · 0 评论 -
使用BeanNameAutoProxyCreator实现spring的自动代理
提到代理,我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作Spring为我们提供了,根据beanName匹配后进行自动代理的解决方法业务接口 package AutoProxyOne;publi转载 2016-07-22 15:34:18 · 1095 阅读 · 0 评论 -
spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
主要区别就是: BeanFactoryPostProcessor可以修改BEAN的配置信息而BeanPostProcessor不能,下面举个例子说明BEAN类:package com.springdemo.postProcessor; public class PostProcessorBean { private String username转载 2016-07-22 15:33:43 · 607 阅读 · 0 评论 -
Spring中配置和读取多个Properties文件--转
public class PropertiesFactoryBeanextends PropertiesLoaderSupportimplements FactoryBean, InitializingBeanAllows for making a properties file from a classpath location available as Properties insta转载 2016-07-22 15:33:05 · 684 阅读 · 0 评论 -
Spring和MyBatis实现数据的读写分离
1.Spring实现数据库的读写分离现在大型的电子商务系统,在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库。Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询。因为在实际的应用中,数据库都是读多写少(读取数据的频率高,更新数据的频率相对较少),而读取数据通常耗时比较长,占用数据库服务器的CPU较多,从而影响用户体验。我们转载 2016-04-28 14:09:01 · 2770 阅读 · 0 评论 -
[自编号1-2]将spring framework源码导入Spring Tool Suite中
先讲基本步骤,如下:去GitHub中下载spring framework的源码,https://github.com/spring-projects/spring-framework/releases下载3.2.X其中的一个版本; 安装Gradle软件,官网下载,解压即可,设置GRADLE_HOME,和PATH。命令行中运行gradle -v,检查一下是否正确安装配置;命令行中运行spri转载 2016-05-24 15:48:51 · 1200 阅读 · 0 评论 -
Spring3+MyBatis3整合无法输出SQL语句问题的解决
项目使用Spring3+MyBatis3整合,但是控制台就是部署出SQL语句,网上找了很多资料,都说是Log4j配置文件的问题,修改了N 边Log4j配置文件依然无效。除了SQL 语句,其他都能显示,纠结的很我的Log4j的配置文件如下:[html] view plain copyxml version="1.0" enc转载 2016-05-03 18:00:49 · 829 阅读 · 0 评论 -
Spring3.0.6定时任务task:scheduled
项目使用的spring版本比较旧是3.0.6版本,由于需要进行定时任务,就决定使用Spring自带的scheduled task。在网上找了很多文章,也查看了Spring3.0.6的官方文档,按照网上和文档所说,可以使用注解或者配置两种方法之一都行,但是我发现单独使用两种方法都不行,怎么配置任务都无法运行。最后看到一篇文章说两种方法同时用,才成功执行定时任务,可能是个Bug,我转载 2016-05-03 18:01:36 · 521 阅读 · 0 评论 -
Spring定时任务的几种实现
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.T转载 2016-05-04 11:45:33 · 192 阅读 · 0 评论 -
Spring与Quartz的整合实现定时任务调度
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现。对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考。 我使用的是Maven来管理项目,需要的Jar包我给大家贴出来。 quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.转载 2016-05-04 11:53:58 · 216 阅读 · 0 评论 -
Spring源码解析——如何阅读源码
最近没什么实质性的工作,正好有点时间,就想学学别人的代码。也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想。 手码不易,转载请注明:xingoo 这篇博文你可以了解到: 1 Spring jar包以及源码使用 2 简单的spring运行示例 3 利用断点调试程序,如何快速的阅读程序【快捷键等的使用】转载 2016-05-23 12:06:10 · 355 阅读 · 0 评论 -
Spring AOP 实现原理与 CGLIB 应用
AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动转载 2016-06-05 11:20:59 · 342 阅读 · 0 评论 -
使用Quartz2.1.6+Spring3.0实现任务调度简单示例
根据各位网友的指导,特别是 lk_well 朋友的分析:从Spring3.2.4才开始支持quart-2.xspring3.0还不支持quartz2.x.楼主的例子中引用了myeclispe自带的Spring 3.0 Misc Libray,这个library中包含com.springsource.org.quartz-1.6.x.jar其实楼主的例子还是用的quartz1.x转载 2016-06-05 11:33:42 · 1056 阅读 · 0 评论 -
Spring配置Quartz例子
1.引入除spring.jar外的Quartz的jar包quartz-all-1.8.6.jar2.任务类 QuartzJob01public class QuartzJob {02 03 public void work1()转载 2016-06-05 11:34:24 · 321 阅读 · 0 评论 -
Spring集成Quartz定时任务框架介绍和Cron表达式详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用Java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。一、增加所依赖的转载 2016-06-05 11:35:05 · 903 阅读 · 0 评论 -
Spring中Quartz的配置
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:参考文章【http://www.cnblogs.com/kay/archive/2007/11/02/947372.html】 【http://www.diybl.com/course/3_program/java/javajs/转载 2016-06-05 11:35:46 · 373 阅读 · 0 评论 -
Quartz与Spring的集成
Quartz与Spring的集成 1、Scheduler入口 Java代码 "quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> "triggers"> "cr转载 2016-06-06 16:52:39 · 354 阅读 · 0 评论 -
spring bean id和bean name的区别
今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下: 首先澄清一个概念: 同名bean:多个bean 有相同的 name 或者 id,称之为同名bean 的id 和 name的区别 id和name都是spring 容器中中bean 的唯一标识符。 id: 一个bean的唯一标识 , 命名格式必须符合XML ID属性的命名规范转载 2016-06-28 16:54:25 · 3310 阅读 · 0 评论 -
WebApplicationInitializer (spring 3.x.x以上版本)
实现WebApplicationinitializer接口的类都可以在web应用程序启动时被加载。那么来想一个问题:为什么实现了WebApplicationInitializer这个接口后,onStartup方法就会自动执行?我们来简单分析一下它的实现原理,下面先贴上WebApplicationInitializer接口相关代码:servlet的ServletConta转载 2016-07-22 15:31:05 · 1069 阅读 · 0 评论 -
Filter体现职责链模式
1. 前言 Filter—Filter 技术是servlet2.3 新增加的功能。完成的流程:对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。 Filter体现了一种职责琏模式。那么他是如何体现的呢?2. 职责链模式 在具体的解释这个之前先看看职责链模式的定义:使多个对转载 2016-07-22 15:31:51 · 358 阅读 · 0 评论 -
Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean区别
一般我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作,这时就该BeanNameAutoProxyCreator出场了。(一)ProxyFactoryBean属性介绍 target:代理的目标类proxyI转载 2016-07-22 15:32:23 · 1229 阅读 · 0 评论 -
总结Spring、Hibernate、Struts2官网下载jar文件
一直以来只知道搭SSH需要jar文件,作为学习的目的,最好的做法是自己亲自动手去官网下。不过官网都是英文,没耐心一般很难找到下载入口,更何 况版本的变化也导致不同版本jar文件有些不一样,让新手很容易一头雾水,这里根据多番查找后的结果进行总结,一来记录下来以备日后自己查阅,二来分享给 众多新手。首先看Spring。spring目前的官网地址:http://www.spr转载 2016-07-19 10:51:46 · 726 阅读 · 0 评论