spring.xmljava
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.xxxx.service.UserService"></bean> </beans>
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
ApplicationContext ac = new FileSystemXmlApplicationContext("C:/IdeaWorkspace/spring01/src/main/resources/spring.xml");
Spring 框架啓動時能夠加載多個配置文件到環境中。對於比較複雜的項目,可能對應的配置文件有多個,項目在啓動部署時會將多個配置文件同時加載進來。spring
service.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.xxxx.service.UserService"></bean> </beans>
dao.xmlide
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDao" class="com.xxxx.dao.UserDao"></bean> </beans>
// 同時加載多個資源文件 ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml","dao.xml");
spring.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!--導入須要包含的資源文件--> <import resource="service.xml"/> <import resource="dao.xml"/> </beans>
加載時只需加載總的配置文件便可spa
// 加載總的資源文件 ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
若有疑問,可加入羣:10803-55292,輸入暗號13,便可有大佬幫助code
Spring IOC 容器 Bean 對象實例化
注:經過默認構造器建立 空構造方法必須存在 不然建立失敗xml
設置配置文件 spring.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.xxxx.service.UserService"></bean> </beans>
獲取實例化對象資源
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml"); UserService userService = (UserService) ac.getBean("userService"); userService.test();
注:
定義靜態工廠類
package com.xxxx.factory; import com.xxxx.service.UserService; /** * 定義靜態工廠類 */ public class StaticFactory { /** * 定義對應的靜態方法,返回實例化對象 * @return */ public static UserService createUserService() { return new UserService(); } }
設置配置文件 spring.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!--靜態工廠--> <bean id="userService" class="com.xxxx.factory.StaticFactory" factory-method="createUserService"></bean> </beans>
獲取實例化對象
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml"); UserService userService = (UserService) ac.getBean("userService"); userService.test();
當咱們指定Spring使用靜態工廠方法來建立Bean實例時,Spring將先解析配置文件,並根據配置文件指定的信息,經過反射調用靜態工廠類的靜態工廠方法,並將該靜態工廠方法的返回值做爲Bean實例,在這個過程當中,Spring再也不負責建立Bean實例,Bean實例是由用戶提供的靜態工廠方法提供的。
注:
定義工廠類
package com.xxxx.factory; import com.xxxx.service.UserService; /** * 定義工廠類 */ public class InstanceFactory { /** * 定義方法,返回實例化對象 * @return */ public UserService createUserService() { return new UserService(); } }
設置配置文件 spring.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 實例化工廠 1.定義實例化工廠bean 2.引用工廠bean 指定工廠建立方法(方法爲非靜態) --> <bean id="instanceFactory" class="com.xxxx.factory.InstanceFactory"></bean> <bean id="userService" factory-bean="instanceFactory" factory-method="createUserService"></bean> </beans>
獲取實例化對象
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml"); UserService userService = (UserService) ac.getBean("userService"); userService.test();
方式三:利用實例化factory方法建立,即將factory方法也做爲了業務bean來控制,1可用於集成其餘框架的bean建立管理方法,2可以使bean和factory的角色互換。
開發中項目通常使用一種方式實例化bean,項目開發基本採用第一種方式,交給Spring託管,使用時直接拿來使用便可。另外兩種瞭解