Spring
文章平均质量分 70
陈脩
从猪场到西溪,从事多年电商业务开发
展开
-
Spring Event实现业务解耦
从实战角度出发,介绍使用SpringEvent进行解耦,提升代码可扩展性原创 2022-07-15 21:08:47 · 461 阅读 · 0 评论 -
Spring AOP项目实战
本文主要介绍了Spring AOP的基础知识以及在项目中实际使用场景以及代码实现原创 2022-07-12 23:22:17 · 1142 阅读 · 0 评论 -
AnnotationMBeanExporter源码分析
/** *通过注解方式MBean导出器,继承MBeanExporter */public class AnnotationMBeanExporter extends MBeanExporter { private final AnnotationJmxAttributeSource annotationSource = new Annotation...原创 2015-06-23 23:13:51 · 254 阅读 · 0 评论 -
JMX之将Spring Bean 输出为带通知的MBean
Spring集成JMX是很简单的,这里通过注解发方式暴露JMX,有的时序我们需要监听JMX属性的改变,下面我们在Spring配置文件中配置监听器。涉及到三个重要的annotation:@ManagedResource @ManagedAttribute 和 @ManagedOperation。用途 Commons Attributes属性 JDK 5.0注解 属性/注解类型......原创 2015-06-21 13:53:47 · 660 阅读 · 0 评论 -
MBeanExporter 源码分析
/** * JMX 导出器允许导出任何Spring管理Bean为 JMX,不需要在类中定义任何JMX信息 * 如果一个bean已经实现了一个JMX 管理接口,MBeanExporter可以通过它的自动检查过程简单地通过MBeanServer注册 * * 如果一个bean 没有实现任何JMX 管理接口,MBeanExporter将使用提供的MBeanInfoAssembler创......原创 2015-06-20 13:05:48 · 616 阅读 · 1 评论 -
JMX之将Spring Bean 输出为JMX并为远程服务暴露Mbean
JMX是Java管理扩展(Java Management Extensions);JMX是一种管理和监控系统资源的技术。这种规范为运行管理系统体统了强大的功能。这些资源有托管Bean(managed beans,MBeans)表示。Spring可以将任何Spring管理的Bean输出为Mbean,而不需要在该Bean中定义任何JMX特有的属性。可以简单地通过声明一个MbeanE......原创 2015-01-24 13:46:35 · 789 阅读 · 0 评论 -
BeanDefinitionParserDelegate 源码分析
public class BeanDefinitionParserDelegate { public static final String BEANS_NAMESPACE_URI = "http://www.springframework.org/schema/beans"; public static final String MULTI_VALUE_ATTRIB...原创 2015-07-09 16:57:57 · 131 阅读 · 0 评论 -
Spring lookup-method,replace-method,factory-method使用示例
在这里会介绍如下知识点:factory-methodfactory-beanlookup-methodreplace-method factory-method 在Spring中如果对一个bean的创建使用工厂方法模式就可以使用factory-method/** * factory-method demo * @author zha...2015-07-08 23:10:20 · 294 阅读 · 0 评论 -
XmlWebApplicationContext源码学习(一)
在Spring web项目中XmlWebApplicationContext是如何创建的?首先在web.xml中我们可以看到如下配置 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:META-I...2015-07-01 22:18:41 · 258 阅读 · 0 评论 -
DispatchServlet源码分析
DispatcheServlet类图,我们根据其类图进行源码分析 GenericServlet 源码分析 /** * 定义一个通用的,协议无关的Servlet.如果需要编写一个在Web中使用的Http Severlet需要继承HttpServlet * GeneraicServlet实现了Servlet接口和ServletConfig接口。Gene...2015-06-28 10:49:07 · 235 阅读 · 0 评论 -
Spring中使用自定义的注解校验器的实现
首先先学习一下注解,注解为我们在代码中添加信息提供了一种形式化的方法,使得我们在稍后的某个时刻可以方便地使用这些数据。 在日常的编码中我们一直都在使用注解,只是没有特别关注过,Java中内置了三种注解:@Override,@SuppressWarnings @Deprecated。相信只要学习过Java的同学一定是见过这些主角的 。 如果我们要写一个自定义...2015-05-31 12:21:26 · 224 阅读 · 0 评论 -
Spring MVC之DispatcherServlet请求处理(二)
回顾一下DispatcherServlet中doDispatch的处理流程 /** * Process the actual dispatching to the handler. * <p>The handler will be obtained by applying the servlet's HandlerMappings in order....2015-05-26 23:44:20 · 147 阅读 · 0 评论 -
Spring validate 使用(一)
在Spring mvc 中使用alidate 首先需要实现alidate接口写道@Componentpublic class ReservationValidator implements Validator {private static final String COURT_NAME = "courtName";private static final Strin...原创 2014-04-24 09:08:33 · 834 阅读 · 0 评论 -
Spring 外部化bean配置
在配置文件中配置Bean 时,你必须记住,将部署细节如文件路径,服务器地址,用户名称和密码与Bean配置混在一起是不好的做法。通常Bean的配置由开发人员编写,而部署细节因不同的环境而不同,如果开发环境和测试环境以及预发布环境和线上环境等。 如何解决不同环境不同导致的重复修改Bean配置呢? Spring 有 一个名称为PropertyPlaceHolderConfi...原创 2014-08-26 22:46:43 · 173 阅读 · 0 评论 -
Spring aop的多种配置方式以及源码分析
profile是Spring3.1提供的一个新的配置项,在下面的测试示例中,又有使用了多种AOP配置方式,为了将各种配置方式进行对比在此使用了profile.在测试用例中通过使用@ActiveProfiles("four")注解指定profile的值。 Aop 是Spring 框架的核心功能之一。 Advice 通知时定义在该连接点做什么,为切面增强提供织入接口。Adv...2015-07-10 14:01:05 · 155 阅读 · 0 评论 -
CXF WebService (二)
在CXF WebService (一) 中可以发现发布一个WS 服务还是很简单的,但是我们在Spring 中发布一个WS还有更简单的方法。 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns...2014-09-27 10:27:02 · 113 阅读 · 0 评论 -
Spring IOC registerBeanDefinition
IOC 是Spring的核心,我们以编程方式使用DefaultListableBeanFactory,尽管在现实的编码过程中几乎不会这种原始的方式,但是作为了解Spring IOC 实现还是很有必要的。 //创建IOC配置的抽象资源 ClassPathResource resource=new ClassPathResource("client.xml");...2016-03-20 12:23:41 · 522 阅读 · 0 评论 -
Spring MVC之HandlerMap 初始化(RequestmappingHandlerMapping)
AbstractHandlerMethodMapping类实现了InitializingBean接口,在属性初始化完成后会调用afterPropertiesSet()方法,在该方法中调用initHandlerMethods();进行HandlerMethod初始化。 /** * 扫描ApplicationContext中的Bean,查找并注册 handlerMethod...2016-03-18 14:07:53 · 199 阅读 · 0 评论 -
Spring 事务处理(二)源码分析
Spring事物的配置样式如下:<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transact...2016-03-05 00:12:10 · 133 阅读 · 0 评论 -
Spring mvc 对Controller配置AOP
希望对所有Controller 的请求参数都统一做一个日志记录,如果没有controller都需要手工去写的化,不能保证格式统一也不能保证不会被遗漏! 如果在配置文件中仅仅配置: <aop:aspectj-autoproxy /> 则会发现AOP的配置对controller 根本不起作用! 是因为 proxy-target-class 默认是fals...2014-12-15 11:51:26 · 227 阅读 · 0 评论 -
ContentNegotiatingViewResolver 学习
ContentNegotiatingViewResolver视图解析器是Spring MVC 中常用的一个视图解析器。 这个实现了ViewResolver接口,基于请求文件和Accept 头部信息。ContentNagotiatingViewResolver自己并不解析视图,而是委派给其他的视图处理器。 回过头来,哪些其他的视图解析器是自动地从应用上下文中挑选出来的,虽...2014-12-02 22:43:33 · 401 阅读 · 0 评论 -
Spring Aop 切点表达式
在Spring AOP 中,通常需要借助AspectJ 的切点表达式语言来定义切点。重要的是Spring 中仅支持AspectJ切点指示器的一个子集。Spring 支持的AspectJ的切点指示器AspectJ 指示器描述args()限制连接点匹配参数为执行类型的执行方法@args()限制连接点匹配参数由执行注解标注的执行方法executi...2014-12-01 11:43:35 · 153 阅读 · 0 评论 -
#springMessage 错误分析
在 项目中使用#springMessage进行错误码解析为错误消息,可是在特定的场景下出现了 $springMacroRequestContext.getMessage($code) #springMessage 是在org/springframework/web/servlet/view/velocity/spring.vm 文件中定义了一个宏。其内容是:...2014-11-19 16:23:46 · 832 阅读 · 0 评论 -
Spring 解决构造程序歧义
问题: 当你为Bean指定一个或者多个构造程序参数时, Spring试图在Bean的类中查找对应的构造程序,并且传递用于Bean实例化参数。但是,如果你的参数可以应用到超过一个构造程序时,可能在构造程序匹配中造成歧义。在这种情况下,Spring 可能无法调用你所预期的构造程序。 解决方案: 你可以在<constructor-arg> 元素中指定index ...原创 2014-03-31 09:48:44 · 178 阅读 · 0 评论 -
Spring mvc 中提交List表单
在项目中有这样一个需要,在配置管理页面中允许用户动态添加key-value的键值对;也就是说,用户最终提交的表单中包含多少个键值对是无法预期的;这样我们就需要一个动态的表单提交的一个list对象。 前端代码如下:<div id="frame-main"><div id="frame-content"><h2>国际汇款配置新...原创 2014-08-06 09:26:17 · 983 阅读 · 1 评论 -
Spring In Action 使用Spring发送和接收JMS消息
在Java EE 平台中,应用往往需要使用JMS进行通信。为了发送和接收JMS消息,必须执行如下任务: 1-在一个消息代理上创建一个JMS连接工厂。 2-创建一个JMS消息的目的地,可以是一个消息或者一个主题 3-从连接工厂打开一个JMS连接 4-从JMS连接中获取一个JMS会话 5-使用消息生产这或者消息消费者发送或者接受一个JMS...原创 2014-01-29 15:34:17 · 110 阅读 · 0 评论 -
Spring In Action 继承Bean的配置
Spring 允许提取公用的Bean配置成一个父bean. 从父Bean继承而来的Bean称为子Bean。 子Bean 从父bean继承Bean的配置,包括bean的属性和<bean>元素中的属性,避免了重复配置。 子bean在必要时也可以覆盖继承的配置。父bean可以作为一个配置模板也可以作为一个Bean的实例。 但是,如果希望父bean仅仅作为一个配置模板而不能检索,必...原创 2014-01-29 13:52:52 · 90 阅读 · 0 评论 -
Spring in Action 使用Junit4 测试Spring
在Maven 工程中添加如下依赖写道<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.a...原创 2014-01-29 11:40:06 · 127 阅读 · 0 评论 -
Spring In Action 使用@Autowired 和@ Resource 自动装配Bean
从Spring 2.5 开始,自动装配功能进行了多次改进,可以通过@Autowired或者@Resource注解一个设值方法,构造字段,属性甚至任意方法自动装配特定的属性。 为了要求Spring 自动装配具有@Autowired或者@Resource注解的属性,必须在IOC容器中注册一个AutowiredAnnotationBeanPostProcessor实例。在上下文中什么...原创 2014-01-29 11:16:25 · 93 阅读 · 0 评论 -
Spring in Action 使用@Required 注解检查属性
Spring 的依赖检查功能仅能检查某些类的所有属性。它的灵活性不够,不能仅仅检查特定的属性。在大部分的情况下,你希望检查特定的属性是否设置,而不是特定类型的所有属性。 解决方案是在set方法上添加@Required 注解。 RequiredAnnotationBeanPostProcessor 是一个Spring bean 后置处理器,检查带有@...原创 2014-01-29 10:34:00 · 121 阅读 · 0 评论 -
Spring In Action 属性注入
SequenceGeneratorImpl 类@Scope("session")public class SequenceGeneratorImpl implements SequenceGenerator { /** 前缀 ***/ private String prefix; /** 后缀 **/ private String suffix; /** 初始值 **/ pr...原创 2014-01-28 14:19:05 · 153 阅读 · 0 评论 -
Spring in Action 使用Maven 构建Spring 工程
Spring 提供两种 IOC的实现,基本的一种称为 Bean工厂(Bean Factory)。更高级的称为应用上下文 ApplicationContext,这是对Bean Factory 的一种兼容性扩展。ApplicationContext 仅仅是一个接口,你必须实例化这个接口的实现。 ClassPathXmlApplicationContext实现从classpath 中...原创 2014-01-28 12:17:15 · 157 阅读 · 0 评论 -
Ecache Spring
Java缓存框架 EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。EHcache 的配置文件各个属性的含义如下:maxElementsInMemory:设定内存中创建对象的最大值 ; eternal设置元素(译注:内存中对象)是否永久驻留。如果是,将忽略超 时限制且元素永不消亡。 over...原创 2014-01-25 17:14:28 · 138 阅读 · 0 评论 -
Spring @Scheduled 任务调度
Spring 3.0 @Scheduled1、 首先添加命名空间<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/...原创 2014-01-19 15:59:22 · 99 阅读 · 0 评论 -
Spring 2.5 Interceptor
springmvcexceptionbeanstrutsobject一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.servlet.handler.Handle...原创 2014-01-13 17:01:50 · 157 阅读 · 0 评论 -
Spring In Action 面向切面编程(AOP)
首先介绍AOP的术语,为了理解AOP,我们必须了解这些术语。 Advice(通知):在AOP的术语中,切面的工作被称为通知 Spring 中可以使用 5中类型的通知 Before-在方法调用之前调用通知。 After-在方法调用之后调用通知,无论方法执行是否成功。 ...原创 2014-01-30 11:30:14 · 158 阅读 · 0 评论 -
Spring In Action SpringMVC 提交表单
首先定义一个form对象写道public class UserForm implements Serializable{ /** * */ private static final long serialVersionUID = 6689428704046325510L; private String name; private String email; private Strin...原创 2014-02-08 11:37:07 · 118 阅读 · 0 评论 -
Spring In Action MVC 提交表单(2)-数据绑定和数据校验
在上一篇中,提交的表单都是简单的 数据类型。如果提交的表单中有其他对象怎么办?比如日期。写道package com.spring.mvn.domain;import java.util.Date;public class Reservation { private String courtName; private Date date; private int hour; p...原创 2014-02-09 12:00:45 · 126 阅读 · 0 评论 -
CXF servlet 发布webservice
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/x原创 2014-03-09 14:12:13 · 246 阅读 · 0 评论 -
Spring mvc 文件下载
@Controller public class DownloadController { @RequestMapping("download.htm") public void downloadFile(String fileName,HttpServletResponse response){ response.set...原创 2014-07-29 13:32:28 · 105 阅读 · 0 评论