spring-ioc 学习笔记2

来源:互联网 发布:西安it 编辑:程序博客网 时间:2024/06/15 01:16

spring -loc创建对象的几种方式:

1.通过无参的构造方法创建对象:

案列代码:

User.java

package com.xunifeng.spring;public class User {public User(){System.out.println("*******user无参构造方法********");}private String name;public void setName(String name) {this.name = name;}public void show(){System.out.println("name="+name);}}
beans.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"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- bean就是java对象 由spring来创建和管理 --> <bean id="user" class="com.xunifeng.spring.User" > <property name="name" value="张三"></property> </bean> </beans>
Test.java

<span style="font-size:12px;">import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.xunifeng.spring.User;public class Test {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");User user=(User)context.getBean("user");user.show();}}</span>
2.通过有参构造方法创建对象:

案列代码:

User.java

package com.xunifeng.spring;public class User {private String name;public User(String name){super();this.name=name;}public void show(){System.out.println("name="+name);}}

Test.java 无修改。


beans.xml

第一种:根据参数的下表设置

<bean id="user" class="com.xunifeng.spring.User" >      <!-- index指构造方法 参数下表从0开始 -->         <constructor-arg index="0" value="张三" ></constructor-arg>     </bean>

第二种:根据参数名来设置

<pre name="code" class="html"><bean id="user" class="com.xunifeng.spring.User" >  <!-- name 指参数名--> <constructor-arg name="name" value="张三" ></constructor-arg> </bean>

第三种:根据参数类型设置

<bean id="user" class="com.xunifeng.spring.User" >  <!-- type 指参数类型--> <constructor-arg type="java.lang.String" value="张三" ></constructor-arg> </bean> 

3.通过工厂方法创建对象:

案列代码:

第一种:静态工厂

userFactory.java

package com.xunifeng.factory;import com.xunifeng.spring.User;public class UserFactory {public static User newInstance(String name){return new User(name);}}

beans.xml

<bean id="user" class="com.xunifeng.factory.UserFactory" factory-method="newInstance">   <constructor-arg index="0" value="张三"></constructor-arg> </bean><strong><span style="font-size:14px;"> </span></strong>
Test.java 和 User.java 无修改。

第二种:动态工厂

UserDynamicFactory.java

package com.xunifeng.factory;import com.xunifeng.spring.User;public class UserDynamicFactory {public User newInstance(String name){return new User(name);}}
beans.xml

   <bean id="userFactory" class="com.xunifeng.factory.UserDynamicFactory"/>  <bean id="user" factory-bean="userFactory" factory-method="newInstance">   <constructor-arg index="0" value="张三"/> </bean>






0 0
原创粉丝点击