日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

bean基于xml文件

作者:仰望星空的快樂 更新時間: 2022-05-10 編程語言

bean管理指的是兩件事:

1.spring創建對象

2.屬性注入 給對象中的屬性賦值

1.bean創建對象:

無參構造函數

xml文件:

屬性值:id是唯一的標識 ,也別的也可以 ,class是對象所在的全路徑 包名.類名

創建對象的時候,默認執行的是無參的構造函數,所以需要類中要有無參構造函數,否則會報錯

有參構造函數

java如果定義了一個有參構造函數,則不會自動生成無參的構造函數,和c++一樣,這時如果不想重新寫無參構造函數,就想使用有參的構造函數,應該這樣寫


    
    
    

test類中生成user對象

這是通過絕對路徑讀取xml文件

        ApplicationContext context =new FileSystemXmlApplicationContext("d:\\IdeaProjects\\untitled\\test_user.xml");

通過相對路徑讀取xml文件?

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("demo1.xml");
        //第一個參數是xml文件中該類對應的bean的id的值
        User user =(User) applicationContext.getBean("user1",User.class);
        System.out.println(user.toString());
    }

}

有三種屬性注入的方法:

1)set方法

1……在?user類中創建屬性,并生成對應的set方法


public class User {
    public User(int aa) {
        this.aa = aa;
    }
    public User() {
    }
    public void setAa(int aa) {
        this.aa = aa;
    }

    public int aa;
    public static void add1()
    {
        System.out.println("nihao shijie ");
    }
}

2…… xml文件中?先配置對象的創建,再配置屬性的注入




    
        
    

2)簡化的set p名稱空間注入


實際用的不多

1......在xml文件中進行屬性注入

xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/

2.....在bean中設置屬性





3)通過xml文件設置屬性的空值和特殊值?

 
  ]]>

<北京> 是要放的特殊值? ?其他的是固定格式 也這樣寫就行了

4)通過xml方式注入集合類型屬性

1.注入數組類型屬性

2.注入list 集合類型

3.注入map 集合類型

4.注入 set集合類型

5.注入 list<自定義類>? 集合類型



    
        
            
                "java_array"
                "python_array"
                "c++_array"
            
        

        
            
                "java_list"
                "python_list"
                "c++_list"
            
        

        
            
                
                
                
            
        

        
            
                "set java"
                "set python"
                "set c++"
            
        
        
            
                
                
            
        
    
    
        
    
    
        
    


外部bean

一個service類中要調用dao類,可以把dao類看做是service類的一個屬性,當做屬性來 聲明 和 注入

public class Studentservice {
    Studentdao studentdao =new Studentdaoimpl();
//set方法是為了在配置文件中生成service類時可以給這個屬性賦值
        public void setBooks(Books books2) {
        this.books=books2;
    }
        return studentdao;
    }

?外部類指的是我在service類聲明的外面 , 聲明dao 類 ,然后在service類中引用dao類



    

    
       
         
         

這種寫法是一樣的,暫時未發現不同
   
            
        
    


   public static void main(String[] args) {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("demo1.xml");
         //第一個參數是xml文件中該類對應的bean 的 id值
        Studentservice studentservice =(Studentservice) applicationContext.getBean("service" ,Studentservice.class);
        studentservice.print2();
    }

?內部bean

在外部類里面聲明內部的類 ,(可能沒說清楚,看下面代碼)?,

student里面聲明department類, department里面有個屬性 d_id,也給這個屬性賦值

    
     
         
             
         
     
    

?student類

package com.testdemo2;

public class Student {
    public int id;
    public Department department;//這里就表示一對一的關系,一個學生要對應一個部門
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }
}

department類?

package com.testdemo2;

public class Department {
    public int d_id;

    public int getD_id() {
        return d_id;
    }

    public void setD_id(int d_id) {
        this.d_id = d_id;
    }
}

?級聯賦值

在配置外部bean之后,可以name="department.d_id"? 來直接配置 department對象中的d_id屬性,注意department對象中一定要寫 d_id的get方法

(在聲明department對象的時候就可以給d_id屬性賦值(比如下面,賦值d_id為10),為什么要用級聯賦值呢)



    
     
     
        
    

    



通過下面的方式 ,可以讓不同的類共享同一個list集合(注意,開頭的引用中增加了東西)




    
         java從入門到精通
         python從入門到精通
         php從入門到精通
    


    
    
    
    

    
      
    


原文鏈接:https://blog.csdn.net/sharesb/article/details/123436530

欄目分類
最近更新