spring
文章平均质量分 83
spring知识点汇总总结
HelloWorld搬运工
HelloWorld是学习程序的第一个程序,搬运工是将一件东西从一个地方运到另一个地方。HelloWorld搬运工,分享技术知识,有原创也有转发,彼此交流,一起学习,共同进步。
展开
-
spring中ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的区别
Junit单元测试的时候有时候会提示找不到注入的类,一般情况下是配置文件位置导致,了解ClassPathXmlApplicationContext和FileSystemXmlApplicationContext在使用上的区别即可解决。ClassPathXmlApplicationContext默认文件路径是src下那一级classpath:和classpath*:的区别:cl...原创 2017-06-16 18:33:51 · 1873 阅读 · 0 评论 -
spring mvc国际化资源实现
springMVC给我们提供了国际化支持,简单来说就是设置整个系统的运行语言,然后根据系统的运行语言来展示对应语言的页面,一般我们称之为多语言。通过源码我们可以了解到springMVC对多语言的支持就是设置Locale的语言信息来实现的,只不过是设置了通过cookie、session等方式设置而已。springMVC多语言具体由拦截器LocaleChangeInterceptor,解析器Loc...原创 2017-06-16 18:54:45 · 413 阅读 · 0 评论 -
spring 获取Bean的几种方式
1.读取xml文件的方式,这种在初学入门的时候比较适用 。 ApplicationContextapplicationContext =newClassPathXmlApplicationContext("classpath:tt.xml"); ApplicationContextapplicationContext =newFileSystemXmlApplica...原创 2017-06-30 10:05:14 · 582 阅读 · 0 评论 -
spring常用的几个aware bean接口:
BeanFactoryAware要直接在自己的代码中读取spring的bean,我们除了根据常用的set外,也可以通过spring的BeanFactoryAware接口实现,只要实现setBeanFactory方法就可以。private BeanFactory beanFactory;public void setBeanFactory(BeanFactory beanFactory)...原创 2017-07-16 18:08:36 · 2998 阅读 · 0 评论 -
spring内置ContextRefreshedEvent事件
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)当我们去使用这个类做事情时发现包空指针错误,这是因为我们这个类有可能已经初始化完成,但是引用的其他类不一定初始化完成,所以发生了空指针错误,解决方案如下:写一个类继承spring的ApplicationListener监听,并监控ContextRefreshedEvent事件(容易初始化完成事件)...原创 2017-07-17 19:18:13 · 1362 阅读 · 0 评论 -
Spring配置property-placeholder标签解析
<context:property-placeholder>标签提供了一种优雅的外在化参数配置的方式,不过该标签在spring配置文件中只能存在一份!!!众所周知,Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,当Spring探测到容器中有一个org.springframework.beans.factory.config.PropertyPlacehold...原创 2017-07-25 16:43:42 · 3043 阅读 · 0 评论 -
property-placeholder源码解析
properties配置信息的加载Spring在启动时会通过AbstractApplicationContext#refresh启动容器初始化工作,期间会委托loadBeanDefinitions解析xml配置文件.protectedfinal void refreshBeanFactory() throws BeansException { if (hasBeanFac...原创 2017-07-25 17:27:43 · 605 阅读 · 0 评论 -
Spring-Bean初始化顺序
在验证spring-Bean初始化顺序前,先看几个关键接口InitializingBean Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet()。 在spring 初始化后,执行完所有属性设置方法(即setXxx)将自动调用 af...原创 2017-07-25 17:47:36 · 6500 阅读 · 0 评论 -
注解@PostConstruct与@PreDestroy讲解
spring xml配置文件中可以配置init-method方法和destroy-method,注解配置的时候@PostConstruct等同于init-method,@PreDestroy等同于destroy-method。从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这...原创 2017-07-25 18:13:04 · 531 阅读 · 0 评论 -
spring配置datasource三种方式
1、使用org.springframework.jdbc.datasource.DriverManagerDataSource说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。<bean id="dataSource" class="org.springframework.jdbc.datasource...原创 2017-07-25 18:22:11 · 833 阅读 · 0 评论 -
spring 注解标签总结
声明Bean的注解:@Component :组件,没有明确的角色 @Service :在业务逻辑层(service层)使用 @Repository :在数据访问层(dao层)使用. @Controller :在展现层(MVC--SpringMVC)使用注入Bean的注解:@Aautowired : Spring提供的注解. @Inject : JSR-330提供的注解 @Res...原创 2017-08-29 06:22:30 · 3051 阅读 · 0 评论 -
spring EnableScheduling标签使用详解
@Target(value=TYPE)@Retention(value=RUNTIME)@Import(value=SchedulingConfiguration.class)@Documentedpublic@interfaceEnableSchedulingEnables Spring's scheduled task execution capability,...原创 2017-08-29 06:36:39 · 6668 阅读 · 0 评论 -
Spring @Profile标签使用:
spring中@profile与maven中的profile很相似,通过配置来改变参数。例如在开发环境与生产环境使用不同的参数,可以配置两套配置文件,通过@profile来激活需要的环境,但维护两套配置文件不如maven中维护一套配置文件,在pom中通过profile来修改配置文件的参数来的实惠。也有例外,比如我在开发中调用商城接口经常不能返回我需要的数据,每次都需要mock数据,所以我写...原创 2017-08-29 07:18:06 · 8614 阅读 · 0 评论 -
spring BeanFactoryPostProcessor和BeanPostProcessor解析
BeanFactoryPostProcessor和BeanPostProcessor,这两个接口,都是spring初始化bean时对外暴露的扩展点。两个接口名称看起来很相似,但作用及使用场景却不同,分析如下:1、BeanFactoryPostProcessor接口该接口的定义如下:publicinterface BeanFactoryPostProcessor { /**...原创 2017-09-04 17:20:00 · 552 阅读 · 0 评论 -
Bean生成过程与BeanFactory ApplicationContext生命周期
spring 中有几种供 springbean 生存的容器: BeanFactory 、 ApplicationContext 、webApplicationContext 。由于 ApplicationContext 和 webApplicationContext 基本一样。所有这里就只介绍BeanFactory 和 ApplicationContext 。理解springBean 的生命周期主...原创 2017-09-04 17:40:00 · 513 阅读 · 0 评论 -
Java中三种代理方式—— 静态代理与两种动态代理的实现机制
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明...原创 2020-03-18 21:15:49 · 17865 阅读 · 7 评论 -
Spring和SpringMVC父子容器关系初探
一、背景最近由于项目的包扫描出现了问题,在解决问题的过程中,偶然发现了Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式。二、概念理解和知识铺垫在Spring整体框架的核心概念中,容器是核心...原创 2018-10-15 18:43:09 · 262 阅读 · 0 评论 -
spring ApplicationListener实现Observer观察者模式
什么是ApplicationContext?它是spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些。 ApplicationContext则是应用的容器。Spring把Bean(object)放在容器中,需要用就通过get方法取出来。ApplicationEvent是个抽象类,里面只有一个构造函数和一个长整型的timestamp。...原创 2017-07-17 19:22:54 · 836 阅读 · 0 评论