1. 程式人生 > 其它 >終端安全管理產品排名

終端安全管理產品排名

1.IOC底層原理

控制反轉,目的:降低耦合度,高內聚,低耦合。把物件建立和物件之間的呼叫過程,交給Spring進行管理。

xml解析、工廠模式,反射

2.IOC介面

  • ioc思想基於IOC容器完成,ioc容器底層就是物件工廠。
  • Spring提供了IOC容器實現的兩種方式:兩個介面,
    • BeanFactory:IOC容器基本實現,是spring內部使用介面,不提供開發人員使用。載入配置檔案時不會建立物件,使用物件時才會建立物件(懶漢式載入物件)。
    • ApplicationContext:BeanFatory的子介面,提供更多更強大的功能,一般供開發人員進行使用。載入配置檔案時就建立物件(飢漢式載入物件)。
  • ApplicationContext介面實現類
    •   FileSystemXmlApplicationContext(“碟符路徑(絕對路徑)”)
    •   ClassPathXmlApplicationContext(“src目錄下類路徑”)

3.IOC操作Bean管理

  •  什麼是Bean管理
    • Bean 管理指的是兩個操作  
    • Spring 建立物件
    • Spring 注入屬性
  • Bean 管理操作的兩種方式
    •   基於xml配置檔案方式實現
    •   基於註解方式實現

4.IOC操作Bean管理(基於xml)

  • 基於xml方式建立物件
    •   (1) 在Spring配置檔案中,使用Bean標籤,標籤裡面新增對應屬性,就可以實現對應物件建立
    •   (2) 在Bean標籤有很多屬性,常用的屬性:id、class、name
    •   (3) 建立物件的時候,預設也是執行無引數構造方法
1     <!--配置User物件建立-->
2     <bean id="user" class="com.spring5.User"></bean>
  1. 基於xml方式注入屬性

    (1) DI:依賴注入,就是注入屬性

  2. 第一種注入方式:使用set方法進行注入

    (1) 建立類,定義屬性和對應的set方法

 1 public class Book {
 2     private String bname;
3 private String bauthor; 4 5 public void setBname(String bname) { 6 this.bname = bname; 7 } 8 public void setBauthor(String bauthor) { 9 this.bauthor = bauthor; 10 } 11 public static void main(String[] args) { 12 Book book = new Book(); 13 book.setBname("WeiSanJin"); 14 } 15 }

   (2)在Spring配置檔案配置物件建立,配置屬性注入

1     <!--set方法注入屬性-->
2     <bean id="book" class="com.spring5.Book">
3     <!--使用property完成屬性注入
4         name:類裡面屬性名稱
5         value:向屬性注入的值
6     -->
7         <property name="bname" value="WeiSanJin"></property>
8         <property name="bauthor" value="WeiSanJin"></property>
9     </bean>

第二種注入方式:使用有引數構造進行注入

(1) 建立類,定義屬性,建立屬性對應有引數構造方法

1 public class Orders {
2     private String oname;
3     private String address;
4 
5     public Orders(String oname, String address) {
6         this.oname = oname;
7         this.address = address;
8     }
9 }

(2) 在spring 配置檔案中進行配置

1     <bean id="orders" class="com.spring5.Orders">
2         <constructor-arg name="oname" value="WeiSanJin"></constructor-arg>
3         <constructor-arg name="address" value="WeiSanJin"></constructor-arg>
4     </bean>

(3)測試

 1     @Test
 2     public void TestOrder(){
 3         //1.載入Spring配置檔案
 4         ApplicationContext context = new ClassPathXmlApplicationContext("base1.xml");
 5 
 6         //2.獲取配置建立的物件
 7         Orders orders = context.getBean("orders",Orders.class);
 8 
 9         System.out.println(orders.toString());
10     }

5.IOC操作Bean管理(xml注入其他屬性)

1.字面量

(1)null值

1     <bean id="book" class="com.spring5.Book">
2         <property name="bname" value="WeiSanJin"></property>
3         <property name="bauthor" value="WeiSanJin"></property>
4         <property name="address">
5             <null></null>
6         </property>
7     </bean>

(2)屬性值包含特殊符號

1 //方法一:轉義字元
2 <property name="address" value="&lt;北京&dt;"></property>
3 //方法二:CDATA
4 <property name="address">
5     <value>
6     <![CDATA[<北京>]]>
7     </value>
8 </property>

2.注入屬性-外部Bean

(1)建立兩個類Service類和dao類

  (2) 在service呼叫dao類的方法

  (3) 在spring配置檔案中進行配置

 1 public interface UserDao {
 2     public void updata();
 3 }
 4 
 5 public class UserDaoImpl implements UserDao{
 6 
 7     @Override
 8     public void updata() {
 9         System.out.println("dao updata.......");
10     }
11 }
12 
13 public class UserService {
14     // 建立UserDao型別屬性,生成set方法
15     private UserDao userDao;
16     public void setUserDao(UserDao userDao) {
17         this.userDao = userDao;
18     }
19 
20     public void add(){
21         System.out.println("service add......");
22         //原理注入方式
23         //UserDao userDao = new UserDaoImpl();
24         //userDao.updata();
25     }
26 }
27 
28 // 第二步寫配置檔案xml檔案
29 // service和dao物件建立
30     <bean id="userService" class="com.spring5.service.UserService">
31         <!-- 注入UserDao物件 
32              name屬性:類裡面屬性名稱
33              ref屬性:建立userDao物件bean標籤id值
34         -->
35         <property name="userDao" ref="userDaoImpl"></property>
36     </bean>
37     // 配置dao物件
38     <bean id="userDaoImpl" class="com.spring5.dao.UserDaoImpl"></bean>

3.注入屬性-內部bean和級聯賦值