1.實現思想:把加載配置文件和創建對象過程,在服務器啟動是完成。
2.實現原理:
(1)ServletContext對象
(2)監聽器
(3)具體說明
-在服務器啟動時候,為每個項目創建一個ServletContext對象
-在ServletContext對象創建時候,使用監聽器可以監聽到ServletContext對象在什么時候創建
-使用監聽器聽到ServletContext對象創建的時候
-加載spring配置文件,把配置文件配置對象創建
-把創建出來的對象放到ServletContext域對象里面(setAttribute方法)
-獲取對象時候,到ServletContext域得到(getAttribute方法)
二、注解創建對象
1.加載約束
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">
2.創建類並在xml中實現配置
<context:component-scan base-package="com.example.ano"></context:component-scan>
import org.springframework.stereotype.Component; @Component(value="user") public class User { public void add(){ System.out.println("add---------"); } }
3.建一個測試類
package com.example.ano; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestAno { @Test public void testUser() { ApplicationContext context = new ClassPathXmlApplicationContext( "bean1xml.xml"); User user1=(User) context.getBean("user"); System.out.println(user1); user1.add(); } }
注解注入對象:
1.創建service類,創建dao類,在service得到dao對象
(1)注入屬性第一注解@Autowired
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service(value="userService") public class UserService { //得到dao對象 //1.創建dao屬性 //在dao屬性上注解完成對象扥注入 @Autowired private UserDao userDao; //使用注解方式不需要set方法 public void add(){ System.out.println("service-----------"); userDao.add(); } }
import org.springframework.stereotype.Component; @Component(value="userDao") public class UserDao { public void add(){ System.out.println("dao-----------."); } }
(2)注入屬性第一注解
//name屬性值寫注解創建Dao對象value值
@Resource(name="userDao")