非Web项目:直接加载Spring内容需要借助ClassPathXmlApplicationContext
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml"); context.start();
Web项目:因为Tomcat等容器会加载web.xml的内容,所以在web.xml中配置如下内容即可:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Spring最主要的配置则是application.xml,本文暂时只分析注解配置。
【application.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" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> </beans>
【自动加载】
<context:component-scan base-package="com.test.action"/> <!-- 加载单个 -->
<context:component-scan base-package="com.test.action,com.test.service,com.test.impl"/> <!-- 加载多个 -->
【注解类型】
@Component 是管理组件的通用形式,添加此注解表示把类交给Spring管理。在Spring 2.5中,提供了额外几个注解,分别是:@Repository(数据访问层Dao等)、@Service(业务层Service)、@Controller(控制层、Web层),此处用途是区分不同层次结构,应对将来Spring对应不同层次的特殊功能和优化。
@Controller 对应控制层Bean,也就是Action。此处相当于LoginAction将自己(默认为"LoginAction"或者通过value="xxx"来取新名字)交给Spring管理,之后只需要通过这个名字就可以把托管的Bean找出来用。
//@Controller(value="defineLoginAction") 自定义名字 @Controller @Scope("prototype") public class LoginAction extends ActionSupport { ... }
@Service 对应业务层的Bean,原理如上。
@Service("loginService") public class LoginService { ... }
@Repository 对应数据访问层Bean。
@Repository(value="userDao") public class UserDaoImpl implements UserDao{ ...... }
@Resource 用于装配Bean(提取托管到Spring的Bean),默认按名称进行装配,放在字段或者setter方法上并且没指定name时,按照字段或者属性名进行装配,。当找不到相同名字匹配时候,才按类型装配。
@Resource(name = "loginService") private LoginService loginService;
=(等价于)
LoginService loginService = new LoginService();
@Autowired 功能和@Resource相同,默认按类型装配,而且要求依赖对象必须存在,如果允许为null,要设置required属性为false,如:@Autowired(required=false),如果想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired() @Qualifier("userDao") private UserDao userDao;
相关推荐
本文将深入解析Spring中的注解式编程,主要包括IOC(Inversion of Control,控制反转)的自动装配和依赖注入的解析。 首先,我们来看一下IOC自动装配。IOC是Spring的核心特性,它将对象的创建和管理从应用代码中...
在Spring框架中,自定义注解的解析是一个强大的特性,允许开发者根据业务需求创建特定的注解,并在Spring容器启动时自动处理这些注解。本文将深入探讨如何在Spring环境中通过`component-scan`配置来处理自定义Java...
Spring对注解(Annotation)处理源码分析 解析和注入注解配置的资源 源码级别的分析
Spring AOP,即Aspect-Oriented Programming(面向切面编程),是Spring框架的重要特性,它为应用程序提供了声明式的企业级服务,如...在实际开发中,熟练掌握Spring AOP的注解配置无疑会极大地提升我们的工作效率。
本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...
《Spring源码解析》 Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现原理一直是许多开发者深入研究的重点。本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control...
使用Spring注解进行依赖注入,如`@Autowired`和`@Resource`,不仅简化了代码结构,减少了XML配置文件的冗余,还增强了代码的可读性和灵活性。通过合理利用这些注解及其辅助注解如`@Qualifier`,开发者可以更高效地...
在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...
本文将深入探讨Spring注解注入的相关知识点,以及如何通过提供的压缩包文件进行实践学习。 **1. Spring注解概述** 在Spring框架中,注解提供了元数据的方式来配置bean,使得我们不再需要XML配置文件。常见的注解...
而Servlet技术则是构建Web应用的基础,Spring提供了对Servlet的支持,并通过注解简化了Servlet的配置和使用。将应用部署到Tomcat等Web服务器,可以让应用对外提供服务。而工厂模式和外部配置文件的使用,进一步增强...
在Spring框架中,自定义标签和注解解析是两个关键的特性,它们使得代码与配置的集成更加紧密,简化了应用程序的开发。本篇文章将深入探讨Spring如何处理这两种类型的元数据。 首先,让我们来理解Spring如何解析...
IoC容器是Spring的基石,它通过XML配置或注解方式管理对象及其依赖关系,实现对象的生命周期管理和装配。在源代码中,`BeanFactory`和`ApplicationContext`是IoC容器的主要接口,它们负责加载配置,创建和管理bean。...
### Spring MVC 注解及页面跳转实例解析 #### 一、Spring MVC 页面跳转实例概述 在本实例中,我们将构建一个简单的Spring MVC应用程序,演示如何处理HTTP请求并实现页面跳转。通过这个实例,我们可以了解Spring ...
以下是对Spring注解配置启动过程的详细解析: 1. **初始化起点**: - 在Spring Web应用中,启动过程通常始于一个继承自`AbstractAnnotationConfigDispatcherServletInitializer`的类。例如,`WebMvcInit` 类中,...
Spring Security可以使用XML配置、Java配置或注解配置。XML配置是最传统的,但在现代项目中,Java配置和注解配置更受欢迎,因为它们更加直观且易于维护。 5. **Spring Security与Spring Boot集成**: 在Spring ...
### 使用注解方式配置的Spring MVC 3.0 #### 概述与优势 随着软件工程的不断发展,...随着Spring框架的不断演进,注解配置已经成为构建Spring应用的标准实践之一,对于现代Java开发者而言,掌握这一技术至关重要。
全注解配置是Spring MVC中的一种现代配置方式,它允许开发者在不使用XML配置文件的情况下,通过注解来声明和管理组件。这种方式简化了项目的配置,提高了代码的可读性和可维护性。 在Java环境下,我们通常使用...
在本文中,我们将深入探讨Spring框架的核心特性——控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),以及如何通过注解配置和Maven项目构建来实现这一概念。Spring框架是Java...
### Spring注解详解及实例分析 #### 概述 随着技术的发展与演进,Spring框架在不断迭代过程中引入了大量的注解来简化应用的配置过程。相比于传统的XML配置方式,注解配置提供了更为简洁且直观的方式来定义Bean以及...
Java之Spring注解配置bean实例代码解析 Java之Spring注解配置bean实例代码解析是Spring框架中的一种配置方式,它可以使用注解将bean实例化并配置到Spring容器中。这种配置方式可以代替传统的XML配置文件,更加简洁...