
spring
mitsuhide1992
软件研发工程师
展开
-
web.xml中classpath和classpath*的区别
classpath:只会到你指定的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.classpath*:META-INF/spring/application-context.xml那么在META-INF/spring这个文件夹底下的所有application-context.xml都会被加载到上下文中。 包括META-I原创 2016-03-30 16:17:24 · 993 阅读 · 0 评论 -
Spring 事务属性
Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概念就是事务转载 2016-05-17 08:56:07 · 329 阅读 · 0 评论 -
Spring AOP原理
AOP原理 ——动态代理在运行时,获取类信息,包装成动态代理类。 执行动态代理类的代理方法,在代理方法内部会执行切面方法,也执行被代理类方法。package aoptest;/** * Created by zly on 2016/3/25. */public interface Dog { public void run(); public void bark();}p原创 2016-03-25 15:21:14 · 486 阅读 · 0 评论 -
Spring IOC (Bean的载入和注册)
本文以FileSystemXmlApplicationContext为例说明FileSystemXmlApplicationContext继承关系:FileSystemXmlApplicationContext AbstractXmlApplicationContextAbstractRefreshableConfigApplicationContextAbstractRefreshableAppl原创 2016-05-03 14:11:25 · 1795 阅读 · 2 评论 -
BeanDefinition封装的信息
public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccessor implements BeanDefinition, Cloneable { /** * Constant for the default scope name: {@code ""}, equivale原创 2016-05-18 09:51:13 · 420 阅读 · 0 评论 -
Spring项目中cannot resolve file applicationContext.xml错误
报异常cannot resolve file applicationContext其实是在发布的web工程中的WEB-INF中没有applicationContext.xml 这个得有才行根本原因因为我是用maven建的web工程,所以需要把applicationContext.xml等资源文件放在resource目录下: 这样在web.xml中就能这样配置了:<context-para原创 2016-04-23 11:12:45 · 18949 阅读 · 2 评论 -
Spring AOP初试
使用注解加配置实现利用IDEA新建web+maven工程配置信息web.xml:<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value></context-param><listener>原创 2016-04-23 15:50:50 · 763 阅读 · 0 评论 -
Spring 3.1 中使用 @Cacheable 实现缓存
在软件开发中使用缓存已经有一个非常久的历史了。缓存是一种很好的设计思想,一旦你用了他,你将会发现他确实很有用。Spring3.1版本的核心对缓存做了实现。在Java推出Annotation特性之前,实现缓存的一个难点在于它与业务逻辑代码的耦合性太强。然而,Spring3.1中使用@Cacheable 和@CacheEvict实现缓存在某种程度上解决了这个问题,基本思想是在方法加上@Cacheable转载 2016-08-02 14:27:32 · 1075 阅读 · 0 评论 -
Spring @Configuration使用
虽然 2.0 版本发布以来,Spring 陆续提供了十多个注解,但是提供的这些注解只是为了在某些情况下简化 XML 的配置,并非要取代 XML 配置方式。这一点可以从 Spring IoC 容器的初始化类可以看出:ApplicationContext 接口的最常用的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContex转载 2016-08-08 12:53:04 · 10263 阅读 · 1 评论 -
spring获取webapplicationcontext,applicationcontext几种方法
方法一:在初始化时保存ApplicationContext对象ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId");说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。方法二:通过Spr转载 2016-08-09 11:19:35 · 5532 阅读 · 0 评论 -
Spring中用@Component、@Repository、@Service和 @Controller等标注的默认Bean名称会是小写开头的非限定类名
今天用调度平台去调用bean中的方法时,提示找不到bean。经查,发现是由于如果在标注上没有提供name属性值,则默认的bean名称是小写开头的,而不是大写开头的。下面是其他文档参阅:使用过滤器自定义扫描 <context:component-scan base-package="org.example"> spring开发手册中这样写: 3.12.4. 自动检测组件的命名当一个组件在某个扫描过转载 2016-08-09 11:41:17 · 17148 阅读 · 0 评论 -
Spring 事务
支持的事务策略全局事务和局部事务全局事务由应用服务器管理,需要底层服务器的JTA支持局部事务和底层所采用的持久化技术有关,采用JDBC持久化技术时,需要Connection对象操作事务;采用Hibernate时,需要Session操作事务全局事务可以跨多个事务性资源(关系型数据库和消息队列);使用局部事务,应用服务器不需要参加事务管理,不保证跨多个事务性资源的正确性。大部分应用都使用单一的事务源。原创 2016-05-09 21:40:05 · 316 阅读 · 0 评论 -
Spring Bean
Spring IOC 容器中 Bean 的生命周期如下: ①. 通过构造器或工厂方法创建 Bean 实例:调用构造器 ②. 为 Bean 的属性设置值和对其他 Bean 的引用:调用 setter ③. 将 Bean 实例传递给 Bean 后置处理器的 postProcessBeforeInitialization 方法 ④. 调用 Bean 的初始化方法:init-method ⑤. 将原创 2016-04-11 22:56:32 · 507 阅读 · 0 评论 -
spring容器加载完成执行某个方法
今天遇到一个问题,需要在项目中加入一个定时器,需要在项目启动后就执行,所以就在网上找spring容器初始化之后就执行的方法有什么:查了很多资料,总共找到了两个符合条件的方法,都是用了一下之后,结合网上的信息说说我个人的理解:1.写一个类,实现BeanPostProcessor,这个接口有两个方法:(1)postProcessBeforeInitialization方法,在spring中定义的bean转载 2016-10-08 10:06:29 · 2859 阅读 · 0 评论 -
Spring AOP源码分析(拦截器调用的实现)
在Spring AOP通过JDK或者Cglib的方式生成代理对象的时候,相关的拦截器已经配置到代理对象中去了,拦截器在代理对象中的作用是通过对这些方法的回调完成的。JDKDynamicAopProxy的invoke拦截@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable原创 2016-05-14 14:24:59 · 10530 阅读 · 0 评论 -
Spring AOP源码分析(生成代理对象)
AOP基本概述Advice(通知)BeforeAdvicepackage org.springframework.aop;import java.lang.reflect.Method;public interface MethodBeforeAdvice extends BeforeAdvice { void before(Method method, Object[] args, Obje原创 2016-05-08 23:36:55 · 3831 阅读 · 1 评论 -
Spring 注解
@Autowired与@Resource的区别1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上 2、@Autowired默认按类型装配(这个注解是属于spring),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果转载 2016-04-02 08:10:45 · 449 阅读 · 0 评论 -
Spring 中的 FactoryBean
FactoryBean(通常情况下,bean无须自己实现工厂模式,Spring容器担任工厂 角色;但少数情况下,容器中的bean本身就是工厂,其作用是产生其它bean实例),作用是产生其他bean实例。通常情况下,这种bean没有什么特 别的要求,仅需要提供一个工厂方法,该方法用来返回其他bean实例。由工厂bean产生的其他bean实例,不再由Spring容器产生,因此与普通 bean的配置不同,转载 2016-05-12 08:58:40 · 397 阅读 · 0 评论 -
IOC容器其他相关特性设计与实现
ApplicationContext和Bean初始化、销毁 启动过程在AbstractApplicationContext中 准备过程在prepareBeanFactory方法,为容器配置了ClassLoader、PropertyEditor和BeanPostProcessorprotected void prepareBeanFactory(ConfigurableListableBeanFa原创 2016-05-12 23:35:40 · 712 阅读 · 0 评论 -
Spring MVC流程
SpringMVC工作流程 1、用户向服务器发送请求,请求被Spring前端控制Servelt DispatcherServlet捕获;2、DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerE原创 2016-03-04 20:41:57 · 425 阅读 · 0 评论 -
Spring MVC教程
导入包用的idea,maven中配置pom.xml<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version></dependency><dependency> <grou转载 2016-05-13 12:08:00 · 582 阅读 · 0 评论 -
BeanDefinition在IOC容器中的注册
注册过程概览注册存放位置HashMap//BeanName,BeanDefinitionprivate final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(256);注册过程首先需要完成Resource的定位和载入(前文) 假设目前执行到XmlBe原创 2016-05-11 23:24:48 · 2241 阅读 · 1 评论 -
Spring IOC(整体流程)
IOC容器基本分成BeanFactory和ApplicationContext两类 BeanFactory是基本,ApplicationContext多用在框架 继承结构如图: BeanFactory接口方法/** 根据bean的名字获取Bean*/Object getBean(String name) throws BeansException;/** 根据bean的名字获取Bean原创 2016-05-03 00:07:23 · 6056 阅读 · 1 评论 -
Spring IOC(依赖注入,getBean)
入口DefaultListableBeanFactory的getBean类继承图流程总体流程 DefaultListableBeanFactory的getBean、doGetBeanpublic <T> T getBean(String name, Class<T> requiredType, Object... args) throws BeansException { return d原创 2016-05-12 12:51:17 · 10416 阅读 · 0 评论 -
Spring 双亲容器
应用场景Spring中父子容器的实现实例Spring的父子容器可以通过ConfigurableApplicationContext或ConfigurableBeanFactory来实现。这两个接口中分别有setParent及setParentBeanFactory方法,可以与当前的子容器进行父子容器关联。这个时候子容器就可以引用父容器中的bean,但是父容器是不能够引用子容器中的bean的,并且各个转载 2016-05-15 11:18:17 · 3934 阅读 · 2 评论 -
springMVC 和 struts2区别
springMVC的每个action对应一个方法,struts2的每个action对应一个类springMVC是方法级别的拦截,struts2是类级别的拦截struts2方法之间也是独立的,但是同一个action的类变量方法之间是共享的SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共原创 2016-03-08 08:40:29 · 489 阅读 · 0 评论