1. 程式人生 > 其它 >IOC建立物件的方式和spring的配置

IOC建立物件的方式和spring的配置

技術標籤:javaspring

IOC建立物件的方式

1.預設通過無參構造


2.假如要使用有參構造建立

  • 下標賦值
<bean id="user" class="com.kuang.pojo.User">
    <constructor-arg index="0" value="mingiao"/>
</bean>

  • 型別賦值
<bean id="user" class="com.kuang.pojo.User">
        <
constructor-arg
type="java.lang.String" value="mingiao"/>
</bean>

當幾個相同型別的變數同時存在時,不建議使用這種方法,以免混淆。

  • 引數名賦值
 <bean id="user" class="com.kuang.pojo.User">
        <constructor-arg name="name" value="mingiao"/>
 </bean>

3. 在配置檔案載入的時候,容器中管理的物件就已經初始化了




spring配置


1.別名

 <alias name="user" alias="hhh"/>

name:物件名 。

alias:別名,可以通過別名獲取到這個物件。


2.Bean的配置

<bean id="userT" class="com.kuang.pojo.UserT" name="u1;u2;u3"  >
        <property name="name" value
="123"/>
</bean> <!-- id:bean的唯一標識(物件名)--> <!-- class:bean物件的全限定名:包名+型別--> <!-- name:別名(可以同時取多個別名)-->

3.import

可以將其他的配置檔案(xml)匯入,使用的時候,用總的配置檔案就行了

<import resource="beans.xml"/>

4.例子

  • UserT.java
public class UserT {
    private String name;

    public UserT(){
        System.out.println("UserT被建立了");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void show(){
        System.out.println("name="+name);
    }
}
  • bean.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 id="userT" class="com.kuang.pojo.UserT" name="u1;u2;u3"  >
        <property name="name" value="123"/>
    </bean>

    <alias name="userT" alias="hhh"/>
    
</beans>
  • .applicationContext.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">

<import resource="beans.xml"/>

</beans>
  • 測試

    public class MyTest {
        public static void main(String[] args) {
         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
         
         UserT usert1=(UserT) context.getBean("u1");//name取別名
         UserT usert2=(UserT) context.getBean("hhh");//alias取別名
         
         usert1.show();
         usert2.show();
        }
    }
    
  • 執行結果
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-SDbU1raO-1610788770607)(C:%5CUsers%5CHP%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210116171608568.png)]