Spring基础-1-IOC与DI
来源:互联网 发布:windows 集群文件系统 编辑:程序博客网 时间:2024/05/16 11:46
认识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:加载本地磁盘下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基础-1-IOC与DI
- spring IoC与DI
- Spring IoC与DI
- 1、Spring框架-IoC与DI
- Spring-IOC/DI-1
- Spring基础(IOC&DI)
- spring的IOC与DI
- 【Spring学习】IoC与DI
- spring 的ioc与di
- spring的IoC与DI
- spring ioc 与 di 原理
- Spring之IOC与DI
- Spring学习笔记之基础、IOC、DI(1)
- Spring 1 IoC 3 DI
- Spring(1)IOC/DI
- Spring基础入门之Ioc、DI、AOP
- Spring教程系列(一)-IoC与DI
- 戏说Spring里的【IoC与DI】
- 英文字母和中文汉字在不同字符集编码下的字节数
- BottomNavigationView的安卓库
- 计算机网络–应用层
- 图像质量评价的方法和意义
- poj2653 Pick-up sticks(判断线段相交)
- Spring基础-1-IOC与DI
- 和云台一起学Linux 之 约定
- sld中使用多个字段做标注
- 深入学习Kubernetes | 上海站
- Policy Gradient简述
- 3.Unity_CG_Shader光照之——漫反射(lambert模型以及Half lambert模型)
- SpringMVC上传文件进度显示
- arm-none-eabi-gcc编译器的安装和相关配置
- GLSL(着色器语言)