Spring基础-1-IOC与DI
2017-10-11 10:00
363 查看
认识Spring
1,Spring简介
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。2,Spring优势
方便解耦,简化开发Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
IOC
1,IOC基本知识
Inversion of Control 控制反转.,指的是对象的创建权反转(交给)给Spring,作用是实现了程序的解耦合。个人粗鄙的理解,就是我们如果需要使用对象资源的时候,直接从工厂中去获取,我们也不需要考虑工厂如何创建,只需要通过配置文件来控制工厂。
2,IOC容器相关知识
2.1,ApplicationContext:
ClassPathXmlApplicationContext:加载类路径下Spring的配置文件。
FileSystemXmlApplicationContext:加载本
4000
地磁盘下Spring的配置文件。
ApplicationContext已经替代了早期的 BeanFactory,BeanFactory在getBean的时候会生成实例,而ApplicationContext则是在加载applicationContext.xml时候就会创建。同时还提供其他功能。
事件传递
Bean自动装配
各种不同应用层的Context实现
2.2,bean标签相关属性
id属性:Bean起个名字。在约束中采用ID的约束,唯一。必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号。但是id不能出现特殊字符。也可以使用name属性,一般不推荐。class属性:Bean对象的全路径
scope属性:scope属性代表Bean的作用范围
singleton:单例(默认值)
prototype:多例,在Spring框架整合Struts2框架的时候,Action类也需要交给Spring做管理,配置把Action类配置成多例!
request:应用在Web项目中,每次HTTP请求都会创建一个新的Bean
session:应用在Web项目中,同一个HTTP Session 共享一个Bean
globalsession:应用在Web项目中,多服务器间的session
Bean对象的创建和销毁的两个属性配置:Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法
init-method:当bean被载入到容器的时候调用init-method属性指定的方法
destroy-method:当bean从容器中删除的时候调用destroy-method属性指定的方法
DI
1,DI基本知识
Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中。1.1,属性注入方式
1.1.1, 构造方法的方式注入属性:提供构造方法<bean id="car" class="cn.itcast.spring.demo4.Car"> <constructor-arg name="name" value="保时捷"/> <constructor-arg name="price" value="1000000"/> </bean>
1.1.2,set方法的方式注入属性:提供set方法
<bean id="car2" class="cn.itcast.spring.demo4.Car2"> <property name="name" value="奇瑞QQ"/> <property name="price" value="40000"/> </bean>
1.2,对象注入方式
<property name="name" rel="具体的Bean的ID或者name的值"/>
1.3,数组,集合(List,Set,Map),Properties等的注入方式
1.3.1,如果是数组或者List集合,注入配置文件的方式是一样的<property name="arrs"> <list> <value>美美</value> <value>小风</value> </list> </property>
1.3.2,如果是Set集合,注入的配置文件方式如下
<property name="sets"> <set> <value>哈哈</value> <value>呵呵</value> </set> </property>
1.3.3,如果是Map集合,注入的配置方式如下
<property name="map"> <map> <entry key="老王2" value="38"/> <entry key="凤姐" value="38"/> <entry key="如花" value="29"/> </map> </property>
1.3.4,如果是properties属性文件的方式,注入的配置如下
<property name="pro"> <props> <prop key="uname">root</prop> <prop key="pass">123</prop> </props> </property>
相关文章推荐
- Spring学习笔记之基础、IOC、DI(1)
- Spring学习笔记之基础、IOC、DI(1)
- Spring基础入门之Ioc、DI、AOP
- Spring基础知识-IOC、DI、AOP
- Spring基础[IOC/DI、AOP]
- Spring 基础概念——DI、IOC(一)
- Spring基础(IOC&DI)
- spring ioc 基础
- Spring的IoC(控制反转) 、DI(依赖注入)
- 史上最容易理解Spring的IoC和DI
- spring的ioc和di
- spring 底层实现IOC DI简单依赖反射
- Spring基础---IoC使用拓展
- Spring 控制反转IOC,依赖注入DI
- Spring——DI(依赖注入)/Ioc(控制反转)
- Spring学习笔记----01. 入门知识,IoC/DI
- Spring笔记(一)——xml方式实现IoC和DI
- Spring IOC基础
- 【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3
- Spring中的IoC与DI