Spring-IOC手札
IOC的原理和使用技巧
小小工匠
show me the code ,change the world
展开
-
Spring-Spring4.X 概述
认识SpringSpring是分层的JavaSE/EE应用的一站式轻量级开源框架,以IOC(Inverse of Control 反转控制)和AOP(Aspect Oritened Programming 面向切面编程)为内核,提供了展现层Spring MVC 和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术。同时Spring能很方便的兼容第三方的框架和类库Sprin原创 2017-06-15 02:29:52 · 12098 阅读 · 1 评论 -
Spring-Spring 开发环境搭建及HelloSpring
Jar包准备安装 Java 开发工具包(JDK)省略….下载 Apache Commons Logging API从 http://commons.apache.org/logging/ 下载 Apache Commons Logging API 的最新版本, 获取jar包 下载 Spring 框架库从 http://repo.spring.io/release/org/springframewor原创 2017-06-22 14:21:01 · 11671 阅读 · 1 评论 -
Spring-Spring MVC + Spring JDBC + Spring Transaction + Maven 构建web登录模块
概述本模块主要涉及以下部分:Maven构建web项目的过程登录流程介绍基于Spring JDBC的持久层实现基于Spring 声明式事务的业务层实现基于Spring MVC的展现层实现运行Web应用功能简介用户访问login.jsp,返回带有用户名和密码输入框的登录页面用户输入用户名和密码,提交表单到服务器,Spring根据配置文件调用LoginController控制器响应请求原创 2017-06-29 01:29:22 · 12747 阅读 · 0 评论 -
Spring-IoC容器
导读为了更好地理解Spring的IoC容器,在这里我们通过具体的日常工作中分配工作的示例来模拟IOC的概念。 同时,Spring实现依赖注入的Java底层技术是 Java反射,因此我们也会对Java反射进行介绍。 本篇文章主要内容:Ioc概念所包含的设计思想Java反射BeanFactory、ApplicationContext、WebApplicationContext基础接口Bean的生原创 2017-07-01 12:49:30 · 11129 阅读 · 0 评论 -
Java-利用Spring提供的Resource/ResourceLoader接口操作资源文件
背景JDK提供的访问资源的类(如java.net.URL、File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类路径或者Web容器上下文中获取资源的操作类。Spring提供了Resource接口,为应用提供了更强的底层资源访问能力,该接口拥有对应不同资源类型的实现类。 资源访问接口主要方法boolean exists() 资源是否存在boolean isOpen() 资源是否打开UR原创 2017-07-08 05:50:38 · 16992 阅读 · 0 评论 -
Spring-BeanFactory解读
BeanFactory和ApplicationContextSpring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java反射功能实例化Bean,并建立Bean之间的依赖关系。 Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、时间发布、资源装载等高级服务。 BeanFactory是Spring框架最核心的接口,它提供了高级原创 2017-07-10 11:50:55 · 11531 阅读 · 0 评论 -
Spring-ApplicationContext解读
BeanFactory和ApplicationContextSpring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java反射功能实例化Bean,并建立Bean之间的依赖关系。 Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、时间发布、资源装载等高级服务。 BeanFactory是Spring框架最核心的接口,它提供了高级原创 2017-07-10 23:16:07 · 26585 阅读 · 5 评论 -
Spring-WebApplicationContext解读
概述Web应用环境下Bean的作用域WebApplicationContext类体系结构ConfigurableWebApplicationWebApplicationContext初始化使用ContextLoaderLisetener启动WebApplicationContextWebApplicationContext中的日志文件的两种配置方式如何在项目中使用Log4j 2使用J原创 2017-07-11 14:24:14 · 12870 阅读 · 0 评论 -
Log4j2-Log4j 2介绍及使用
Log4j 2 官网https://logging.apache.org/log4j/2.x/Log4j 2简介Log4j的1.x版本已经被广泛使用于很多应用程序中。然而,它这些年的发展已经放缓。它变得越来越难以维护,因为它需要严格遵循很老的Java版本,并在2015年8月寿终正寝。它的替代品,SLF4J和Logback对框架做了很多必要的改进。那么为什么还要费心去做Log4j 2呢?几个原因如下:原创 2017-07-15 11:08:39 · 36156 阅读 · 6 评论 -
Spring-Spring Web项目中配置使用Log4j 2
Log4j 2概述请查看另外一篇博文Log4j2-Log4j 2介绍及使用为什么要使用Log4j 2Web容器中的监听 Log4jConfigListener在 Spring 4.2.1及以后被废弃。Spring中配置Log4j 2添加Maven依赖<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId原创 2017-07-15 12:19:50 · 14998 阅读 · 0 评论 -
Spring-在IoC中装配Bean系列文章导读
概述主要内容博文详情概述在使用Spring各种丰富的功能之前,必须在SpringIoC容器中装配好Bean,并建立Bean之间的关联关系。 Spring提供了多种配置方式,简化之前冗长的配置。 既可以选择一种配置,也可以同时使用多种配置。 主要内容如何使用基于Schema格式的配置依赖注入的类型和配置方式各种注入参数详解Bean的作用域FactoryBean的作用基于注解的配置基于原创 2017-07-16 04:25:14 · 11479 阅读 · 0 评论 -
Spring-Spring配置概述
Spring容器高层视图成功启动Spring容器的三个必要条件Bean配置信息基于XML的配置Schema的配置格式Bean的基本配置装载一个BeanBean的命名Spring容器高层视图成功启动Spring容器的三个必要条件:Spring框架的类包均已放在应用程序的类路径下应用程序为Spring提供了完整的Bean配置信息Bean的类都已经放到应用程序的类路径下Spring启原创 2017-07-16 05:01:17 · 11251 阅读 · 0 评论 -
Spring-依赖注入
概述属性注入属性注入实例代码演示JavaBean关于属性命名的特殊规范构造函数注入按类型匹配入参按索引匹配入参联合使用类型和索引匹配入参通过自身反射类型匹配入参循环依赖问题工厂方法注入选择注入方式的考量概述Spring支持两种依赖注入的方式属性注入构造函数注入此外Spring还支持工厂方法注入。 这篇博文我们将了解到不同注入方式的具体配置方法。属性注入属性注入指的是通过原创 2017-07-16 13:21:36 · 11697 阅读 · 1 评论 -
Spring-注入参数详解-[字面值及引用其他Bean]
概述字面值XML中的特殊符号的处理5个特殊符号特殊符号的处理方式关于注入值空格的处理引用其他Bean实例ref元素的3个属性引用父容器中的Bean实例内部Beannull值级联属性概述在Spring配置文件中,不但可以将String、int等字面值注入bean中,还可以将集合、map等类型的数据注入Bean中, 此外还可以注入配置文件中其他定义的Bean.字面值所谓字面值一般原创 2017-07-17 09:30:39 · 12135 阅读 · 0 评论 -
Spring-注入参数详解-[集合类型属性]
概述常用集合Set实例List实例Map实例Properties实例强类型集合实例集合合并实例通过util命名空间配置集合类型的Bean概述java.util包中的集合类型是最常用的结构数据类型,主要包括List、Set、Map、Properties。 Spring为这些集合类型属性提供了专属的配置标签常用集合Set实例POJO类package com.xgj.ioc.inj原创 2017-07-20 13:43:15 · 12207 阅读 · 0 评论 -
Spring-注入参数详解-[简化配置方式]
概述字面属性值的简化配置方式引用对象属性的简化配置方式使用P命名空间概述字面属性值的简化配置方式引用对象属性的简化配置方式使用P命名空间原创 2017-07-21 00:11:59 · 11915 阅读 · 0 评论 -
Spring-注入参数详解-[通过util命名空间简化集合类型的配置]
概述步骤声明命名空间和schema配置Bean配置一个Map配置一个Set配置一个List配置一个PropertiesMapSetListProperties实例汇总概述如果希望配置一个集合类型的Bean,而非一个集合类型的属性,则可以通过util命名空间进行配置。在spring的配置文件中util命名空间类似于java.util包类对应,util命名空间提供了集合相关的配置,在使用原创 2017-07-21 13:52:16 · 12918 阅读 · 0 评论 -
Spring-基于注解的配置[01定义Bean+扫描Bean]
概述使用注解定义Bean扫描注解定义的Bean使用步骤扫描特定的类 resource-pattern实例include-filter exclude-filter过滤子元素的使用支持多种类型的过滤表达式实例use-default-filters属性实例概述前几篇博文中主要讲述了基于XML的配置。不管是XML还是注解,他们都是在表达Bean定义的载体,其实质都是为Spring容原创 2017-07-22 12:29:21 · 11983 阅读 · 0 评论 -
Spring-基于注解的配置[02自动装载bean]
使用Autowired进行自动注入实例使用Auotwired的required属性实例使用Qualifier指定注入Bean的名称实例对类方法进行标注实例小结对集合类进行标注实例对延迟依赖注入的支持实例对标准注解的支持实例小结使用@Autowired进行自动注入Spring通过@Autowired注解实现Bean的依赖注入。 @Autowired默认按照类型(byTyp原创 2017-07-23 13:34:00 · 11824 阅读 · 0 评论 -
Spring-基于Spring使用自定义注解及Aspect实现数据库切换
实现思路实例步骤一 新建Maven工程步骤二 继承AbstractRoutingDataSource并重写determineCurrentLookupKey方法获取特定数据源步骤三 创建DynamicDataSourceHolder用于持有当前线程中使用的数据源标识步骤四 配置多个数据源和DynamicDataSource的bean步骤五 定义名为DataSource的注解步骤六原创 2017-07-28 01:53:51 · 13920 阅读 · 1 评论 -
Spring-基于注解的配置[03Bean作用范围和生命周期方法]
Bean的作用范围实例Bean的生命周期方法实例Bean的作用范围通过注解配置的Bean和通过<bean>配置的Bean一样,默认的作用范围都是singleton。 Spring为注解配置提供了一个@Scope注解,可以通过它显示指定Bean的作用范围。 @Scope注解通过入参指定Bean的作用范围。 在使用<bean>进行配置可以通过init-method和destory属性指定Bean原创 2017-07-30 06:37:58 · 11775 阅读 · 0 评论 -
Spring-基于Java类的配置
概述使用Java类提供Bean定义信息实例分析使用基于Java类的配置信息启动Spring容器直接通过Configuration启动Spring容器通过AnnotationConfigApplicationContext的构造函数加载配置类通过编码的方式加载多个Configuration配置类然后通过刷新容器应用这些配置类通过Import将多个配置类组装到一个配置类中然后仅需注册这个原创 2017-07-30 09:08:50 · 12930 阅读 · 0 评论 -
Spring-方法注入lookup、方法替换MethodReplacer接口
问题lookup方法注入概述实例方法一 通过在配置文件中配置的方式实现方法二 通过实现接口代码的方式实现小结方法替换MethodReplacer接口概述实例小结总结问题无状态Bean的作用域一般可以配置为singleton(单例模式),如果我们往singleton的Pilot类中注入prototype的Plane类,并希望每次调用Pilot的getPlane()方法都能返回原创 2017-08-02 01:38:30 · 13354 阅读 · 0 评论 -
Spring-bean之间的关系
概述继承实例依赖实例引用实例总结概述不但可以通过<ref>引用另外一个bean,建立起Bean和Bean之间的依赖关系, bean元素标签之间也可以建立类似的关系,完成一些特殊的功能。在Spring容器中,两个Bean之间 除了注入关系外,还存在 继承、依赖、引用 三种关系:继承关系:在Spring容器当中允许使用abstract标签来定义一个父bean,parent标签来定义一个子原创 2017-08-02 08:31:26 · 12211 阅读 · 0 评论 -
Spring-Bean的作用域
概述singleton作用域lazy-initprototype作用域与Web应用环境相关的Bean的作用域作用域依赖维内托概述在配置文件中定义Bean时,用户不但可以配置Bean的属性值以及相互之间的依赖关系,还可以定义Bean的作用域。 作用域对Bean的生命周期和创建方式产生影响。 我们来看下Spring4.0支持的所有作用域类型 类型 说明 singleton 在Sp原创 2017-08-05 01:54:11 · 11760 阅读 · 0 评论 -
Spring-整合多个配置文件
概述小结概述对于一个大型应用来讲,可能存在多个配置文件,在启动Spring容器的时候,可以通过一个String数组指定这些配置文件。 Spring还允许通过<import>将多个配置文件引入到一个文件中,进行配置文件的集成,这样在启动Spring容器的时候,仅需要指定这个合并好的配置文件即可。 比如<import resource="classpath:com/xgj/ioc/lookup/bea原创 2017-08-06 02:17:22 · 14938 阅读 · 0 评论 -
Spring-不同配置方式的比较
概述Bean不同配置方式比较Bean不同配置方式的使用场景概述对于Spring来讲,为实现Bean的信息定义,提供了基于XML、基于注解、基于JAVA类、基于Groovy这4中选项,同事还允许各种配置方式复合共存。Bean不同配置方式比较 类别 基于XML配置 基于注解配置 基于Java类配置 基于Groovy DSL配置 Bean定义 在XML文件中通过<bean>元原创 2017-08-06 09:35:28 · 12136 阅读 · 0 评论 -
Spring-使用外部属性文件01
导读概述PropertyPlaceholderConfigurer属性文件实例使用PropertyPlaceholderConfigurer属性文件PropertyPlacerholderConfigurer的其他属性locationsfileEncodingorderplaceholderPrefixplaceholderSuffix使用contextproperty-pla原创 2017-08-06 11:01:19 · 11662 阅读 · 0 评论 -
Spring-使用加密的属性文件02
概述实例DES加密解密工具类使用密文版的属性文件修改配置文件引用自定义的EncryptPropertyPlaceholderConfigurer概述对于不敏感的属性信息,以明文形式出现在属性文件中是合适的,但是如果属性信息是数据库用户名和密码等敏感信息,一般希望以密文的方式保存。这就要求对应用程序配置文件的某些属性进行加密,让Spring容器在读取属性文件后,在内存中对属性进行解密,然后将解原创 2017-08-07 06:34:49 · 11695 阅读 · 0 评论 -
Spring-属性文件自身的引用03
Spring既允许在Bean定义中通过`${propName}`引用属性值,也允许在属性文件中使用`${propName}`实现属性之间的相互引用。原创 2017-08-07 13:00:32 · 12048 阅读 · 0 评论 -
Spring-引用Bean的属性值
概述实例基于XML方式的引用基于注解的引用概述将应用系统的配置信息存放在配置文件中并非总是最合适的,如果应用以集群的方式部署,或者希望在运行期动态调整引用的某些配置,这时,将配置信息放到数据库中不但方便集中管理,而且可以通过应用系统的管理界面动态维护,有效增强应用系统的可维护性。 早期版本,如果想在配置文件中引用另外一个Bean的属性值是比较麻烦的,Spring3.0则提供了优雅的解决方案.原创 2017-08-07 13:30:41 · 12903 阅读 · 0 评论 -
Spring-国际化信息01-基础知识
导读概述基础知识概述javautilLocale本地化工具类NumberFormat DateFormatMessageFormatResourceBoundle实例中文本地化资源文件两种转换方式JDK的native2ascii工具IDE自带的支持ResourceBundle加载资源的顺序在资源文件中使用格式化串导读Spring-国际化信息01-基础知识Spring-国原创 2017-08-09 01:30:02 · 12518 阅读 · 0 评论 -
Spring-国际化信息02-MessageSource接口
概述MessageSource接口方法MessageSource类结构ResourceBundleMessageSource实例ReloadableResourceBundleMessageSource实例概述spring定义了访问国际化信息的MessageSource接口,并提供了几个易用的实现类.MessageSource接口方法我们先看下源码,先来了解一下该接口的几个重要方法St原创 2017-08-11 04:05:26 · 16565 阅读 · 0 评论 -
Spring-国际化信息03-容器级的国际化信息资源
概述实例注意事项概述我们查看ApplicationContext中的源码可以看到public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher,原创 2017-08-12 13:07:33 · 11669 阅读 · 0 评论