ApplicationContext和BeanFacotry区别:
ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性 没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是 检 验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.
方法1
WebApplicationContext appContext=WebApplicationContextUtils. getWebApplicationContext(this.getServlet().getServletContext());
方法2:是从classpath 路径下加载 spring的配置文件
WebApplicationContext appContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
方法3
Resource resource = new FileSystemResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource);
方法4
ClassPathResource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
方法5
ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"applicationContext.xml", "applicationContext-part2.xml"}); // of course, an ApplicationContext is just a BeanFactory BeanFactory factory = (BeanFactory) context;
方法6
InputStream is = new FileInputStream("beans.xml"); BeanFactory factory = new XmlBeanFactory(is);
方法7
ClassPathResource res = new ClassPathResource("beans.xml"); XmlBeanFactory factory = new XmlBeanFactory(res);
方法8
ApplicationContext ac = new FileSystemXmlApplicationContext ("C:/SpringConfig/Spring-Config.xml");
方法9 :多个xml文件导入到一个xml中进行加载
将XML配置文件分拆成多个部分是非常有用的。为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为 字符串数组传给 ApplicationContext构造器。而bean factory将通过调用bean defintion reader从多个文件中读取bean定义。
通常情况下,Spring团队倾向于上述做法,因为这样各个配置并不会查觉到它们与其他配置文件的组合。另外一种方法是使用一个或多个的<import/> 元素来从另外一个或多个文件加载bean定义。所有的<import/>元素必须放在<bean/>元素之前以完成bean定义的导入。 让我们看个例子:
<beans><import resource="services.xml"/> <import resource="resources/messageSource.xml"/> <import resource="/resources/themeSource.xml"/> <bean id="bean1" class="..."/> <bean id="bean2" class="..."/> </beans>
在上面的例子中,我们从3个外部文件:services.xml、messageSource.xml及themeSource.xml来加载bean定义。这里采用的都是相对路径,因此,此 例中的services.xml一定要与导入文件放在同一目录或类路径,而messageSource.xml和themeSource.xml的文件位置必须放在导入文件所在目录下的 resources目录中。正如你所看到的那样,开头的斜杠‘/’实际上可忽略。因此不用斜杠‘/’可能会更好一点。
根据Spring XML配置文件的Schema(或DTD),被导入文件必须是完全有效的XML bean定义文件,且根节点必须为<beans/> 元素。
加载文件时候通配符使用 (Ant-style Patterns)
classpath*:conf/appContext.xml 搜索所有的类路径中的conf/appContext.xml文件(包括src和jar文件中)
classpath:com/mycompany/**/service-context.xml 以com/mycompany为跟路径来查找 文件所在
例子:
/WEB-INF/*-context.xml
com/mycompany/**/applicationContext.xml
file:C:/some/path/*-context.xml
classpath:com/mycompany/**/applicationContext.xml
加载文件前缀的使用:
Prefix | Example | Explanation |
classpath: 会用 ClassPathResource 加载 | classpath:com/myapp/config.xml | Loaded from the classpath. |
file: 会用UrlResource加载 | file:/data/config.xm | Loaded as a URL, from the filesystem. |
http: | http://myserver/logo.png | Loaded as a URL. |
none | /data/config.xml | Depends on the underlying ApplicationContext. |
相关推荐
2. **Bean工厂和ApplicationContext**:Bean工厂是IoC容器的初级实现,而ApplicationContext不仅包含了Bean工厂的所有功能,还提供了更多的企业级服务,如消息源、国际化支持以及对其他Spring模块的集成。...
1. **spring-core**:这是Spring框架的基础模块,提供了核心工具类和特性,包括Bean工厂、资源处理、事件传播和通用的类型转换系统。它定义了Spring的基本架构,并为其他模块提供了基础设施。 2. **spring-beans**...
Spring提供了多种bean定义方式,如XML、Java配置和注解。AOP则允许开发者定义横切关注点,如事务管理,从而将这些通用功能模块化。 三、Struts:MVC框架 Struts是基于MVC(Model-View-Controller)设计模式的Web...
这些类库通常包括Spring的核心模块,如spring-core、spring-beans、spring-context等,以及与特定功能相关的模块,例如spring-web、spring-jdbc、spring-orm等。此外,由于描述中提到了MySQL,所以也应当包含与...
8. **Bean容器**:Spring的Bean容器(ApplicationContext)是管理所有bean实例的地方,它可以加载配置,实例化bean,并负责bean之间的依赖注入。 9. **注解驱动**:Spring大量使用注解,如@Service、@Repository、@...
2. `spring-beans`: 包含了Bean工厂,是实现DI的基础。 3. `spring-aop`: 实现AOP,允许我们在不修改代码的情况下添加额外的功能。 4. `spring-web`: 为Web应用提供了支持,如Servlet监听器和HTTP上下文。 5. `...
2. `spring-beans`: 定义了Bean的创建、配置和管理。 3. `spring-aop`: 支持AOP编程,可以定义切面和通知,实现非侵入式的服务拦截。 4. `spring-web`: 提供了Web相关的支持,如Servlet监听器和Filter。 5. `spring-...
Spring 作为一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等核心功能,极大地提高了开发效率和代码的可维护性。而 MyBatis 是一个轻量级的持久层框架,它简化了数据库操作,...
Spring的组成包括核心类库和引入的第三方类库。核心类库是Spring框架的基础,它提供了框架的基本功能。引入的第三方类库则提供了框架的扩展功能,如AOP、JSR-250中的注解等。 Spring的配置文件默认情况下是...
2. **spring-beans-4.2.6.RELEASE.jar**:包含Bean工厂和依赖注入(DI)的核心实现,它是Spring框架的基础,负责对象的创建、配置和管理。 3. **spring-context-4.2.6.RELEASE.jar**:提供了更高级的应用上下文服务,...
这个核心 jar 包包含了 Spring MVC 运行所必需的类库,使得开发者能够创建功能强大的、模块化的 Web 应用。下面我们将深入探讨 Spring MVC 的核心概念和关键组件。 1. **DispatcherServlet**:Spring MVC 的入口点...
"spring-context.jar"则进一步扩展了Bean工厂,提供了应用程序上下文,使得我们可以从容器中获取bean,同时也支持事件发布、国际化等功能。 4. **spring-test**: 这个部分是Spring提供的测试支持,包括"spring-test...
在Eclipse中使用"spring.jar"开发包,开发者可以方便地导入Spring的类库,利用Spring的IoC容器管理Bean,利用AOP进行切面编程,使用MVC框架开发Web应用,以及轻松地进行数据库操作。同时,Spring还提供了强大的单元...
2. **Spring Beans**:这个模块定义了Bean工厂,它是容器的核心,负责创建、配置和管理Bean。XML配置文件或注解可以用来定义Bean及其依赖。 3. **Spring AOP(面向切面编程)**:提供了一个全面的AOP实现,允许我们...
核心容器包括Bean工厂(BeanFactory)和ApplicationContext,它们是Spring的核心,负责对象的创建、管理及依赖注入。 在`spring-framework-5.1.4.RELEASE-docs.zip`中,我们可以找到详细的API文档和用户指南,这些...
这个"Spring5jar包 完整版下载"提供的是Spring框架的第五个主要版本,它包含了一系列的类库,覆盖了Spring的核心特性以及与其他技术的集成。让我们深入探讨一下Spring5中的关键知识点。 1. **IoC(Inversion of ...
- 添加Spring的核心类库到项目中,包括spring-core、spring-context、spring-web、spring-webmvc等。 **Step09:配置Spring容器** - 创建Spring的配置文件applicationContext.xml,配置Bean的定义,包括DAO层、...
2. **Struts2与Spring集成**:使用Spring插件(struts2-spring-plugin)让Struts2能够识别和管理Spring的Bean。这样,Action类可以直接作为Spring的Bean,通过@Autowired注解注入所需的依赖。 3. **Hibernate与...
- **一站式服务**:在IOC和AOP的基础上,Spring可以整合各种企业级应用的开源框架和第三方类库,比如Spring MVC和Spring JDBC。 #### 二、Spring工具套装(Spring Tool Suite, STS)的安装 为了更好地使用Spring...
这个目录下可能包括`beans`、`context`、`core`等子目录,分别对应Spring的核心容器、上下文和核心类库。这些组件协同工作,为应用程序提供bean的生命周期管理、AOP支持以及与其他框架的集成。 1. **依赖注入...