Spring深入研究(一)
来源:互联网 发布:哪里胡杨林最美 知乎 编辑:程序博客网 时间:2024/05/04 19:08
Spring
创建Spring配置文件
Spring配置文件 名字位置不固定
放在src目录下面,命名applicationContext.xml
schema约束
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="foo" class="x.y.Foo"> <meta key="cacheName" value="foo"/> <property name="name" value="Rick"/> </bean></beans>
- bean实例化方式
第一种 使用类的无参数构造创建
第二种 使用静态工厂创建
第三种使用实例工厂创建
- bean 标签常用属性
- id 属性:
起的名称,任意命名,根据id得到配置对象
class属性:
要创建的bean的全路径
name属性:
与id属性作用相同(遗留问题)
scope属性: Bean的作用范围:
singleton:默认值,单例的
prototype:多例的
request:对象存入到request域中
session:对象存入到Session域中
globalSession:如果没有Porlet环境那么globalSession相当于session
属性注入
创建对象时候,向类里面属性里面设置值
属性注入三种方式:
- 使用set方法注入
<!--使用set方法注入属性--><bean id="book" class="com.jia.property.Book"><!--注入属性值 name属性值:类里面定义的属性名称 value属性:设置具体的值--> <property name="bookname" value="易筋经"></property></bean>
- 有参数构造器注入
<!--使用有参数构造注入属性--><bean id="demo1" class="com.jia.property.PropertyDemo1"><!--使用有参构造注入--> <constructor-arg name="username" value="小王小马"></constructor-arg></bean>
- 使用接口注入
注入对象类型属性
<!--1配置service和dao对象--><bean id="userDao" class="com.jia.ioc.UserDao"></bean><bean id="userService" class="com.jia.ioc.UserService"> <!--注入dao对象 name属性值:service类里面属性名称 不要使用value属性,因为字符串使用value,对象使用ref ref属性:dao配置bean标签中id值 --> <property name="userDao" ref="userDao"></property></bean>
P名称空间注入
xmlns:p="http://www.springframework.org/schema/p"
<!--p名称空间注入--><bean id="person" class="com.jia.property.Person" p:pname="lucy"></bean>
注入复杂类型属性
- 1 数组
- 2 list集合
- 3 map 集合
- 4 properties 类型
<!--注入复杂类型属性值 --> <bean id="person" class="com.jia.property.Person"> <!--数组 --> <property name="arrs"> <list> <value>小王</value> <value>小马</value> <value>小宋</value> </list> </property> <!-- list --> <property name="list"> <list> <value>小奥</value> <value>小金</value> <value>小普</value> </list> </property> <!-- map --> <property name="map"> <map> <entry key="aa" value="lucy"></entry> <entry key="bb" value="mary"></entry> <entry key="cc" value="tom"></entry> </map> </property> <!-- properties --> <property name="properties"> <props> <prop key="driverclass">com.mysql.jdbc.Driver</prop> <prop key="username">root</prop> <prop key="password">root</prop> </props> </property> </bean>
IOC和DI区别
- IOC: 控制反转,把对象创建交给spring进行配置
- DI: 依赖注入,向类里面的属性中设置值
- 关系: 依赖注入不能单独存在,需要在ioc基础之上完成操作
Spring整合web项目原理
- 1 加载Spring核心配置文件
//加载spring配置文件,根据创建对象 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
new 对象,功能可以实现,效率很低
- 2 实现思想:把配置文件和创建对象过程,在服务器启动时候完成
- 3 实现原理
(1)ServletContext对象
(2)监听器
(3)具体使用:
- 在服务器启动时候,为每个项目创建一个ServletContext对象
- 在ServletContext对象创建时候,使用监听器可以具体到ServletCintext对象在什么时候创建
- 使用监听器监听到ServletContext对象创建时候,加载Spring配置文件,把配置文件配置对象创建
- 把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
- 获取对象时候,到ServletContext域得到(getAttribute方法)
1 0
- Spring深入研究(一)
- Spring深入研究(二)
- Spring深入研究(三)
- spring Ioc研究(一)
- Spring(之二)--深入研究
- ThreadLocal深入研究-spring
- 深入研究B树索引(一)
- 深入研究B树索引(一)
- 深入研究B树索引(一)
- 深入研究B树索引(一)
- 深入研究B树索引(一)
- Android 深入研究adb(一)
- 深入使用Spring(一)
- Spring值得深入研究挖掘!
- Spring 3 MVC深入研究
- Spring Mvc3.0深入研究
- Spring 3 MVC深入研究
- Spring 3 MVC深入研究
- 三子棋游戏C语言模拟实现
- Android 使用内容解析者往联系人数据库中插入数据
- 如何保证微服务接口的幂等性
- 关于Maven的Pom.xml报错的解决办法
- 排序10:基数排序
- Spring深入研究(一)
- 第6章、Request Pipeline
- nyoj195飞翔(动态规划)
- reactnative StatusBar状态栏介绍
- 链接规则引发的全局变量的值被改变
- Servlet中的request对象
- ui-sref传递参数报错原因解析
- 写了一个小工程——总结
- QT写一个记事本⑤