spring笔记1

11 篇文章 0 订阅
spring的好处:
spring能有效组织你的中间层对象
spring能消除在许多工程中常见的对singleton的过多使用
spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化
spring能够帮助我们真正意义上实现针对接口的编程
使用spring构建的应用易于单元测试
spring支持JDBC和O/R mapping产品(hibernate)
MVC web框架,提供一种清晰,无侵略性的MVC实现方式
spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理。

控制反转模式的基本概念:不创建对象,但是描述创建他们的方式,在代码中不直接与对象和服务廉价,但是在配置文件中描述哪一个组件需要哪一项服务,容器(在spring框架中时IOC容器)负责将这些联系在一起

IOC组件注入方式:
1.接口注入
2.通过set方法注入(设值注入)
3.通过构造方法注入


applicationcontext和bean工厂的联系
applicationcontext扩展bean工厂接口
applicationcontext提供附加功能
bean工厂延迟加载所有bean,直到getBean被调用
applicationcontext则在初始化自身时检验,为立即加载,这样有利于检查自身所以来属性是否注入;所以通常情况下使用applicationcontext
spring容器中的Bean缺省状态是单例模式


applicationcontext常用实现:
ClassPathXmlApplicationContext spri    配置文件必须放在src目录下
FileSystemXmlApplicationContext    配置文件必须放在工程下
XmlwebApplicationContext    根据不署名路径寻找 webroot   例如:
ApplicationContext context = new ClassPathXmlApplicationContext("app.xml")


bean中ID和name的区别:
ID时唯一标识bean 不能用特殊字符:X@#,不能用数字开头,在bean引用的时候只能有id指向你需要的bean
name可以用特殊字符,并且一盒bean可以有多个名称name="bean1,bean2,bean3",用逗号隔开,如果没有id 则name的第一个名称默认是ID
<!-- scope="prototype"表示每次从容器中获取的是一个新对象 -->
		<bean class="com.lovo.bean.UserBean" id="user" scope="prototype"></bean>




<!-- scope="prototype"表示每次从容器中获取的是一个新对象 -->
		<bean class="com.lovo.bean.UserBean" id="user">
		<!-- 利用对象的构造方法给属性赋值  index 为第几个形参,下标默认从0开始-->
		<constructor-arg index="0" value="2"></constructor-arg>
		<constructor-arg index="1" value="李四"></constructor-arg>
		
		
		<!-- 给该对象的userName属性赋值为张三 -->
		<!--  <property name="userName" value="张三"></property> -->	
			<!-- ref表示wash属性的值是id为washer对应的实体bean -->
			<property name="wash" ref="washer"></property>
			
			<!-- 装配List和数组 -->
			<property name="list">
				<list>
				<!-- 字符串元素 -->
					<value>aaa</value>
					<value>111</value>
					<!-- 引用已注册的实体bean -->
					<ref bean ="washer"/>
				</list>
			</property>
			
			<!-- 装配set和数组 -->
			<property name="set">
				<set>
					<value>bbb</value>
					<value>222</value>
					<ref bean ="washer"/>
				</set>
			</property>
			<!-- 装配Map集合 -->
			<property name="map">
				<map>
					<entry key="ccc" value="333"></entry>
					<entry key="ddd" value="444"></entry>
					<entry key="iw" value-ref="washer"></entry>
				</map>
			</property>
			
			<!-- 装配properties -->
			<property name="pro">
				<props>
					<prop key="eee">555</prop>
					<prop key="fff">666</prop>
				</props>
			</property>
		</bean>
		<bean class="com.lovo.bean.Washer" id="washer"></bean>  <!--配置接口   washer-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值