多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
实例化spring ioc 容器是非常简单直接的。只要实例化ApplicationContext就行,构造参数是资源字符串,指向各种外部资源路径位置,例如本地文件系统,java classpath等待。 ~~~ java ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml"); ~~~ 下面是服务层对象配置示例`(services.xml)` ~~~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"> <!-- services --> <bean id="petStore" class="org.springframework.samples.jpetstore.services.PetStoreServiceImpl"> <property name="accountDao" ref="accountDao"/> <property name="itemDao" ref="itemDao"/> <!-- 这里添加bean的配置和组合对象 --> </bean> <!-- 更多的服务层对象配置 --> </beans> ~~~ 下面是数据访问层对象配置示例(daos.xml): ~~~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="accountDao" class="org.springframework.samples.jpetstore.dao.jpa.JpaAccountDao"> <!-- 这里添加bean的配置和组合对象 --> </bean> <bean id="itemDao" class="org.springframework.samples.jpetstore.dao.jpa.JpaItemDao"> <!-- 这里添加bean的配置和组合对象 --> </bean> <!-- 更多的数据访问层对象配置 --> </beans> ~~~ 在上面的示例中,服务层由类`PetStoreServiceImpl`和 两个类型为`JpaAccountDao `和`JpaItemDao `的数据访问对象组成,property元素的name引用了javaBean的属性名称。ref元素引用另一个定义的bean。元素id和ref之间的联系表示合作对象的依赖关系。详细的对象依赖配置,参考[依赖](https://docs.spring.io/spring/docs/5.0.6.RELEASE/spring-framework-reference/core.html#beans-dependencies) ### Composing XML-based configuration metadata 把xml配置文件分隔成多个是较好的做法,每个独立的文件表示架构中一个业务逻辑或者模块。 可以使用ApplicationContext的构造参数加载所有的xml配置文件,如一开始介绍的那样。或者使用元素 <import/>加载其他配置文件,如下: ~~~xml <beans> <import resource="services.xml"/> <import resource="resources/messageSource.xml"/> <import resource="/resources/themeSource.xml"/> <bean id="bean1" class="..."/> <bean id="bean2" class="..."/> </beans> ~~~ 上面的示例,所有的外部bean配置来自三个文件,services.xml,messageSource.xml和themeSource.xml,所有文件的位置是相对于这个使用import的文件的,所以services.xml文件必须和此文件同目录,messageSource.xml 和 themeSource.xml必须在此文件同目录的resources目录下。如你所见,开头的斜线被忽略了,因为这是相对路径,所以最好不要在开头加斜线。import的文件必须符合spring schema规范。 import指令时bean命名空间本身提供的功能,另外spring还提供了更多可选的xml命名空间的特性,例如context和util