通过少量的配置ApplicationContext就可以开箱即用spring,通常一个单独的应用是会创建ClassPathXmlApplicationContext 或者 FileSystemXmlApplicationContext 实例。尽管 xml 是 一种传统的配置元数据的格式,但是你也可以使用少量的xml显示声明的支持java注解和或者Java代码这种元数据格式。在许多应用场景中会创建很多个IOC container 而不是一个。
当你的对象和配置元数据完成之后,ApplicationContext 会初始化和创建,然后你就可以完全执行系统或者应用,如下图:
三 、初识配置元数据
spring 的 配置 最少需要一个或者多个bean,基于xml的配置 需要在顶级元素 内部,对应的基于java 配置就是 @Bean(用于方法上面) 注解 和 @Configuration(用于类上面)注解。在 中 id 表示 bean的唯一标识,class表示bean的全类名,示例如下:
<?xml version="1.0" encoding="UTF-8"?>四、实例化container
提供给ApplicationContext一个或者多个字符串形式的资源路径,ApplicationContext就会通过这个资源路径去加载这些外部 configuration metadata。
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[] {“services.xml”, “daos.xml”});
在 的属性中 name 元素 表示 javaBean的属性,ref指向其它bean的定义。
<?xml version="1.0" encoding="UTF-8"?>五、组装xml
在实际开发中业务层和逻辑层是分开的,也就是说一个xml配置bean耦合度太高,我们需要解耦就需要定义多个mxl,但是,如何在一个xml中引用另一个xml中的bean呢? 我们可=可以通过 元素加载来自其他xml中的bean。在引入外部的xml时,都是当前xml的相对路径,如下示例:services.xml在当前xml同级目录,message.xml在当前xml目录的子目录。
六、使用container
ApplicationContext 是一个高级factory维持着不同的bean和依赖关系注册表。使用 这个接口的T getBean(String name, Class requiredType) 方法就能获得bean的实例。
6.1、pom.xml
org.springframework spring-core 5.0.0.RELEASE org.springframework spring-context 5.0.0.RELEASE org.springframework spring-beans 5.0.0.RELEASE6.2、dao
/**
- @Author lsc
- @Description
ioc dao
- @Date 2019/10/29 20:04
*/
public class IocDao {
}
6.3、service
/**
- @Author lsc
- @Description
- @Date 2019/10/29 20:03
*/
public class IocService {
private IocDao iocDao;
private String name;
public IocDao getIocDao() {
return iocDao;
}
public void setIocDao(IocDao iocDao) {
this.iocDao = iocDao;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
6.4、dao.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.s
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
pringframework.org/schema/beans/spring-beans.xsd">
.youku1327.ioc.dao.IocDao">