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-->
spring笔记1
最新推荐文章于 2024-10-08 11:53:09 发布