
Spring
文章平均质量分 82
IT农夫
古人学问无遗力,
少壮工夫老始成。
纸上得来终觉浅,
绝知此事要躬行。
展开
-
Springboot 中文文档 —— Actuator
Springboot 中文文档 —— Actuatorhttps://blog.youkuaiyun.com/kangsa998/article/details/103021718转载 2020-04-16 11:51:53 · 619 阅读 · 1 评论 -
Spring AOP中pointcut expression表达式解析
Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()@args()execution()this()target()@target()within()@within()@annotation其中executio原创 2012-04-09 17:36:36 · 168389 阅读 · 11 评论 -
Spring声明事务的时候如果代码中有commit会发生什么
在利用Spring声明的事务和Spring提供的对持久层的Template操作数据库的时候,原则上不要在代码里写事务控制的语句(commit).1,用JdbcTemplate和JDBC集成的时候: public void testInsert(int id, String val) { this.jdbcTemplate.update("insert into A (ID, V原创 2012-04-10 17:04:39 · 10237 阅读 · 0 评论 -
实例详解Spring MVC入门使用
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller).通过分层使开发的软件结构更清晰,从而达到开发效率的提高,可维护性和扩展性得到提高.Spring提供的MVC框架是在J2EE Web开发中对MVC模式的一个实现,本文通过实例讲解一下Spring MVC 的使用.原创 2012-02-20 14:22:02 · 33818 阅读 · 6 评论 -
Spring依赖注入的方式
Spring通过property()和构造函数()对bean的依赖注入进行配置.对String以及基本类型的注入:通过name/value的形式,如果是数字类型,boolean类型,value指定的值会被自动转换成期望的类型.与之类似,只是没有name指定参数名称,可以用index指定序号(从0开始).对对象类类型的注入:通过ref或者内部bean的形式.原创 2010-04-09 14:42:00 · 4409 阅读 · 0 评论 -
Bean在Spring容器中的生命周期
配置在Spring中的Bean在Spring容器中从加载到销毁会经历那些过程呢?如果实现一些特定的Spring接口,这些特定接口的方法会在什么时候被调用呢?本文简单介绍一下这些过程.Bean在Spring容器中的生命周期如下图所示:1,调用Bean的构造函数(或者工厂方法)实例化Bean.2,对Bean的成员变量赋值.3,如果Bean实现了BeanNameAware,调原创 2012-02-22 13:31:58 · 7053 阅读 · 0 评论 -
Spring AOP:被代理类的构造函数和调用自身类方法的注意点
Spring AOP是通过动态代理实现的:通过JDK的动态代理或者CGLIB动态生成子类.如果被代理的bean是interface,会使用JDK的动态代理,这时候,bean的构造函数只会被调用一次,如果该bean没有实现任何interface,会使用cglib来动态生成子类,这时候构造函数会被调用两次,所以在bean的构造函数里尽量不要写业务相关的代码.如果bean的某个方法被'AOP'了原创 2010-04-23 15:54:00 · 6377 阅读 · 0 评论 -
Spring 对JDBC操作的支持
在用JDBC进行数据库的操作的时候会在每个DAO中写有很多重复和类似的代码(建立连接,关闭连接等等),Spring的JDBC框架对这些重复的操作做了提取,形成了模板,使用Spring的JDBC框架的开发者通过提供SQL语句和在必要的时候提供callback类(用于提供更新操作的值和从返回结果集中提取返回结果),开发者就不用再去写那些重复的建立连接,关闭连接的代码了,这样不但减少了代码量,同时也避免原创 2010-05-07 16:19:00 · 4266 阅读 · 0 评论 -
Spring的WebServiceTemplate访问WebService的方法及其本质原理
WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML.本文简单介绍一下如何通过Spring提供的WebServiceTemplate访问Webservice,WebServiceTemplate与调用webservice的客户端已及webservice服务器端示意图如下(图片来源于Spring in Act原创 2012-02-24 15:51:23 · 33255 阅读 · 5 评论 -
Spring 和 Hibernate的集成
Spring对Hibernate的集成提供了很好的支持,Spring提供了对sessionfactory的初始化,用户不用再关心session的open,close,同时,Spring还提供了灵活的事务声明.本文通过实例简单讲述如何在Spring中集成Hibernate.1,将hibernate的配置加入到Spring的配置中(对datasource和sessionfactory进行配置)原创 2010-05-13 16:48:00 · 13040 阅读 · 2 评论 -
Spring的ApplicationContext加载Property文件
利用Spring的ApplicationContext加载Property文件,可以实现国际化和'热'加载文件(不用重启应用).Spring提供了ResourceBundleMessageSource和ReloadableResourceBundleMessageSource两个类加载property文件,后者提供了'热'加载以及指定编码等功能.例子:配置文件<!-- <bea原创 2010-04-19 16:02:00 · 9957 阅读 · 0 评论 -
Spring加载resource时classpath*:与classpath:的区别
Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.比如 resource1.jar中的package 'com.test.rs' 有一个 'jarAppcontext.xml' 文件,内容如下:原创 2010-04-20 17:16:00 · 171780 阅读 · 18 评论 -
实例简述Spring AOP之对AspectJ语法的支持
Spring的AOP可以通过对@AspectJ注解的支持和在XML中配置来实现,本文通过实例简述如何在Spring中使用AspectJ.一:使用AspectJ注解:1,启用对AspectJ的支持:通过在Spring的配置中引入下列元素来启用Spring对AspectJ的支持:或者(如果不是使用XSD的话)2,声明一个带有@Aspect注解的类,在这个类中声明那些方法需要原创 2010-04-22 14:40:00 · 5687 阅读 · 0 评论 -
Spring Portlet MVC开发入门示例
本文通过一个简单实例介绍一下Spring 的Portlet MVC框架.Spring Portlet MVC和其Web MVC可以说是如出一辙,只是在Web MVC中处于核心的DispatcherServlet在Portlet MVC中换成了DispatcherPortlet,如下图描述了Portlet request是如何被处理的.关于Spring 的Web MVC,请参照 http://b原创 2012-03-09 12:10:54 · 7371 阅读 · 1 评论 -
Spring Container的扩展点
Spring在解析完配置文件后,会调用一些callback方法,使用Spring的开发者可以通过提供这些callback方法达到对Spring Container的扩展.1,通过实现BeanPostProcessor来完成对某些Bean的一些'定制',BeanPostProcessor定义了两个方法,postProcessBeforeInitialization(Object bean, St原创 2010-04-15 13:15:00 · 6301 阅读 · 0 评论 -
Spring No adapter for handler异常
在Spring MVC框架中,当通过注解@Controller方式实现控制器和其他不同类型的控制器(如继承Controller的方式的控制器)一起使用的时候,通常需要配置Adapter.1,在和继承SimpleFormController 作为控制器使用的时候(public class LoginController extends SimpleFormController ),需要在-ser原创 2012-02-23 13:03:55 · 29573 阅读 · 0 评论 -
Spring的Bean生命周期内的callback方法和Spring容器启动关闭时的callback方法
通过Spring管理的bean,在其生命周期内可以配置被Spring调用的callback方法一般有两种:通过实现Spring提供的特点接口和通过配置callback方法.(如果bean是prototype的话,由于其销毁不被Spring管理,其销毁方法不会被调用)1,通过实现Spring提供的特点接口:通过实现InitializingBean接口,Spring容器会在初始化bean的时候调用原创 2010-04-14 15:37:00 · 9458 阅读 · 1 评论 -
Spring全局事务之JTA+Atomikos
本文简单介绍一下在Spring通过声明管理一个有数据库和ActiveMQ参入的全局事务,事务管理器的实现为Atomikos.全局事务的步骤为1,更新数据库操作.2访问ActiveMQ资源.3,提交在数据库A中的操作.4,提交在ActiveMQ中的操作.上面的所有步骤应该保证要么全部成功,要么全部回滚.下面是实现的步骤:1,配置Spring文件:<beans xmlns原创 2012-02-16 15:36:08 · 12707 阅读 · 2 评论 -
Spring 对JMS的支持
Spring提供了一个用于简化JMS API使用的抽象框架,用户利用Spring使用JMS可以不用关心connection factory,session等资源的管理.类似于对JDBC的抽象,Spring提供了一个JmsTemplate类,抽象了操作JMS都必须做的公共步骤,留下了callback方法给用户去实现,如提供消息的真正内容等.本文主要讲解一下怎么使用Spring来发送消息,接受消息原创 2010-05-18 15:16:00 · 15613 阅读 · 1 评论 -
Spring API级别对AOP的支持
在Spring 2.0之前,Spring通过定义一套接口和通过ProxyFactoryBean来生产bean实例提供对AOP的支持,在2.0后,Spring推荐通过AspectJ兼容的方式来实现AOP.见http://blog.youkuaiyun.com/kkdelta/archive/2010/04/22/5515882.aspx1,定义'方面'拦截器,最常用的接口有:MethodIntercep原创 2010-04-30 13:50:00 · 2632 阅读 · 0 评论 -
Spring全局事务之WebLogicJtaTransactionManager
全局事务是指在一个事务中涉及到几个事务参入者,这些事务参入者可以是我们常见的数据库操作,消息(MQ)操作等等.如同时进行下面的操作,比如"转账"操作发生在两个数据库:1,从数据库A的的表中将某个帐号的余额减少.2从数据库B的的表中将某个帐号的余额增加.3,提交在数据库A中的操作.4,提交在数据库B中的操作.通常单个数据库只能保证本数据库的事务要么提交要么回滚,当涉及的事务跨数据原创 2012-02-16 12:26:58 · 6445 阅读 · 0 评论 -
Spring的依赖注入
控制反转(Inversion of Control)和依赖注入(Dependency Injection):IoC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,原创 2010-04-08 13:47:00 · 10175 阅读 · 5 评论 -
Spring的方法注入
当一个Bean依赖的Bean和自己生命周期不同的时候:如Bean A依赖Bean B,Bean A 是singleton,如果需要在Bean A每次用到Bean B的时候都用一个Bean B的新的实例,通过在配置文件中通过 property或者 contructor-arg是不能实现的.这时候只能在Bean A中用Bean B的时候动态得到.通常的做法有两种:1,Bean A实现 Applic原创 2010-04-12 14:45:00 · 4856 阅读 · 0 评论 -
Spring声明型事务管理示例详解
Spring不直接实现管理事务,它只是管理哪些方法需要有事务,通过AOP的方式调用底层的事务管理器进行事务管理.有需要事务管理的类是被Spring代理创建的,代理类通过在连接点前后插入预处理过程(开始事务)和后处理过程(commit或rollbak)实现事务管理.Spring定义了事务管理器(PlatformTransactionManager)预处理应该有些什么样的方法,在声明了事务的方法被原创 2012-02-14 16:59:53 · 4686 阅读 · 0 评论 -
Web项目开发环境中运行在Tomcat时涉及到JNDI的Datasource的解决方法
通常在J2EE的开发中,需要用到在服务器上通过JNDI配置的Datasource,如最后的应用在Weblogic上运行,而在开发环境的本地机器中可能是Tomcat,这时候需要在Tomcat上配置一个Datasource,在网上看到很多人的解决办法都是改Tomcat运行环境的server.xml 或者context.xml,其实最简单的办法是在项目的META-INF目录里加入一个context.xm原创 2012-02-28 14:39:39 · 4734 阅读 · 0 评论 -
Spring 实例化bean
Spring实例化bean一般有3种方式:通过bean的自身构造函数,通过工厂类和通过别的实体bean的方法.通过bean的自身构造函数是最普通也是最常用的一种,在XML配置如下:通过工厂类构造bean: class="examples.ClientService" factory-method="createInstance原创 2010-04-07 17:08:00 · 3637 阅读 · 2 评论