01:初识Spring
来源:互联网 发布:js input name 数组 编辑:程序博客网 时间:2024/05/16 03:03
ApplicationContext.xml配置文件
bean标签属性
1) 对象创建,单利/多利
- scope=”singleton” 默认值,默认为单利,【service/dao/工具类】
- scope=”prototype” 多利 【action对象】
2)对象创建时期
- scope=”singleton” 在启动(容器初始化之前),就已经创建号bean,而且只有一个
- scope=”prototype” 在用到对象的时候,才创建
3)延迟创建
- lazy-init=”false” 默认为false,不延迟创建,即在启动时间的对象在启动的时候创建
- lazy-init=”true” 延迟初始化,在使用对象的时候才创建,只对单利又影响
4)创建对象之后,初始化/销毁
- init-method=”方法名” 【对应对象的init_user方法,在对象创建之后执行】
- destroy-method=”destroy” 【在调用容器对象的destroy的方法执行,容器必须是实现类(ClassPathXMLApplicationContext),而不是接口(ApplicationContext)】
SprintIOC容器
创建对象,使用XML文件的创建方式
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 无参构造器 --> <bean id="user1" class="cn.itcast.b_create_obj.User" ></bean> <!-- 定义一个字符串,值是JackSpry --> <bean id="str" class="java.lang.String"> <constructor-arg value="JackSpry"></constructor-arg> </bean> <!-- 带参构造器 --> <bean id="user2" class="cn.itcast.b_create_obj.User"> <constructor-arg value="100" index="0" type="int"></constructor-arg> <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg> </bean> <!-- 工厂类创建对象 --> <!-- 工厂类,实例方法 --> <!-- 先创建工厂 --> <bean id="factory" class="cn.itcast.b_create_obj.UserFactory"></bean> <!-- 在创建user对象,用factory的实例方法 --> <bean id="user3" factory-bean="factory" factory-method="getInstance"></bean> <!-- 工厂类,静态方法 --> <bean id="user" class="cn.itcast.b_create_obj.UserFactory" factory-method="getStaticInstance"></bean></beans> public class App { @Test public void testIOC() throws Exception { ApplicationContext ac=new ClassPathXmlApplicationContext("cn/itcast/b_create_obj/bean.xml"); User user = (User)ac.getBean("user"); System.out.println(user); }}
处理对象之间的依赖关系
给属性赋值
- 通过构造函数
通过set方法
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--######### 给对象的属性赋值 #########--><!-- 1)通过构造函数 --><bean id="user1" class="cn.itcast.c_property.User"> <constructor-arg index="0" value="100"></constructor-arg> <constructor-arg index="1" value="Tom"></constructor-arg></bean><!-- 2)通过set方法属性注入值 --><bean id="user2" class="cn.itcast.c_property.User"> <property name="id" value="11"></property> <property name="name" value="hello"></property></bean><!-- 案例:action/service/dao --> <!-- dao instance --> <bean id="userDao" class="cn.itcast.c_property.UserDao" scope="singleton"></bean> <!-- service instance --> <bean id="userService" class="cn.itcast.c_property.UserService" scope="singleton"> <property name="userDao" ref="userDao"></property> </bean> <!-- action instance --> <bean id="userAction1" class="cn.itcast.c_property.UserAction" scope="prototype"> <property name="userService" ref="userService"></property> </bean><!-- 内部bean --><bean id="userAction2" class="cn.itcast.c_property.UserAction"> <property name="userService"> <bean class="cn.itcast.c_property.UserService"> <property name="userDao"> <bean class="cn.itcast.c_property.UserDao"></bean> </property> </bean> </property></bean></beans>
p名称空间
<!--必须有xmlns:p才可以使用--><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--######### 给对象的属性赋值 #########--><!-- 给对象属性注入值: # p 名称空间给对象的属性注入值 (spring3.0以上版本支持) --> <bean id="userDao" class="cn.itcast.c_property.UserDao"></bean> <bean id="userService" class="cn.itcast.c_property.UserService" p:userDao-ref="userDao"></bean> <bean id="userAction" class="cn.itcast.c_property.UserAction" p:userService-ref="userService"></bean> <!-- p后面两种形式,都可以实现给属性赋值 1. p: 属性名=赋值 2. p: 属性引用=引用id --> <bean id="user" class="cn.itcast.c_property.User" p:id="100" p:name="Tomm"></bean></beans>
自动装配
- 根据名称自动装配,autowire=”byName”
- 自动去IOC容器中找与属性名同名的引用的对象
<!--######### 给对象的属性赋值 #########--><bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean><bean id="userService" class="cn.itcast.d_auto.UserService" autowire="byName"></bean><!-- 根据"名称"自动装配,userAction注入的属性,回去IOC容器中自动查找与属性同名的对象 --><bean id="userAction" class="cn.itcast.d_auto.UserAction" autowire="byName"></bean><!--同时也可以写到全局--><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName"> <!--######### 给对象的属性赋值 #########--> <bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean> <bean id="userService" class="cn.itcast.d_auto.UserService"></bean> <!-- 根据"名称"自动装配,userAction注入的属性,回去IOC容器中自动查找与属性同名的对象 --> <bean id="userAction" class="cn.itcast.d_auto.UserAction"></bean></beans>
- 自动去IOC容器中找与属性名同名的引用的对象
- 根据名称自动装配,autowire=”byName”
- 注释
- 注解可以与XML配置共同使用
- @Resource 根据类型查找
- @Resource(name=”名称”) 根据名称查找
阅读全文
0 0
- 01:初识Spring
- 初识spring
- 初识Spring
- 初识Spring
- Spring初识
- Spring 初识
- 初识Spring
- 初识spring
- 初识Spring
- 初识Spring
- Spring初识
- 初识Spring
- 初识Spring
- 初识Spring
- Spring初识
- 初识Spring
- 初识Spring
- 初识Spring
- 第一个只出现一次的字符 (剑指offer)
- 二叉树的深度遍历和广度遍历
- MATLAB数值分析笔记大纲
- LeetCode-66:Plus One (数组看作数据 加1)
- cocos2dx手游开发之环境搭建
- 01:初识Spring
- CS Maxor 或运算,DP(SOS)
- SpringBoot从入门到精通
- Hadoop伪分布式,分布式搭建
- 算法练习(19):Jump Game II
- git版本控制工具使用教程(三)分支使用
- 计算机网络面试知识点
- 剑指offer之从上到下打印二叉树(Python)
- 使用PHP创建一个REST API(译)