`
mdxdjh2
  • 浏览: 12352 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring 注解配置解析

阅读更多

  非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注解方式解析

    本文将深入解析Spring中的注解式编程,主要包括IOC(Inversion of Control,控制反转)的自动装配和依赖注入的解析。 首先,我们来看一下IOC自动装配。IOC是Spring的核心特性,它将对象的创建和管理从应用代码中...

    Spring 自定义注解的解析

    在Spring框架中,自定义注解的解析是一个强大的特性,允许开发者根据业务需求创建特定的注解,并在Spring容器启动时自动处理这些注解。本文将深入探讨如何在Spring环境中通过`component-scan`配置来处理自定义Java...

    Spring对注解(Annotation)处理源码分析

    Spring对注解(Annotation)处理源码分析 解析和注入注解配置的资源 源码级别的分析

    spring注解aop配置详解

    Spring AOP,即Aspect-Oriented Programming(面向切面编程),是Spring框架的重要特性,它为应用程序提供了声明式的企业级服务,如...在实际开发中,熟练掌握Spring AOP的注解配置无疑会极大地提升我们的工作效率。

    对Spring中注解怎么实现的一些基本原理

    本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...

    Spring源码解析.zip

    《Spring源码解析》 Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现原理一直是许多开发者深入研究的重点。本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control...

    Spring注解注入属性

    使用Spring注解进行依赖注入,如`@Autowired`和`@Resource`,不仅简化了代码结构,减少了XML配置文件的冗余,还增强了代码的可读性和灵活性。通过合理利用这些注解及其辅助注解如`@Qualifier`,开发者可以更高效地...

    Spring demo 自动检测注解

    在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...

    spring注解实例

    本文将深入探讨Spring注解注入的相关知识点,以及如何通过提供的压缩包文件进行实践学习。 **1. Spring注解概述** 在Spring框架中,注解提供了元数据的方式来配置bean,使得我们不再需要XML配置文件。常见的注解...

    Spring核心源码解析.pdf

    而Servlet技术则是构建Web应用的基础,Spring提供了对Servlet的支持,并通过注解简化了Servlet的配置和使用。将应用部署到Tomcat等Web服务器,可以让应用对外提供服务。而工厂模式和外部配置文件的使用,进一步增强...

    这一次搞懂Spring自定义标签以及注解解析原理说明

    在Spring框架中,自定义标签和注解解析是两个关键的特性,它们使得代码与配置的集成更加紧密,简化了应用程序的开发。本篇文章将深入探讨Spring如何处理这两种类型的元数据。 首先,让我们来理解Spring如何解析...

    Spring源代码解析

    IoC容器是Spring的基石,它通过XML配置或注解方式管理对象及其依赖关系,实现对象的生命周期管理和装配。在源代码中,`BeanFactory`和`ApplicationContext`是IoC容器的主要接口,它们负责加载配置,创建和管理bean。...

    SPring注解及页面跳转实例

    ### Spring MVC 注解及页面跳转实例解析 #### 一、Spring MVC 页面跳转实例概述 在本实例中,我们将构建一个简单的Spring MVC应用程序,演示如何处理HTTP请求并实现页面跳转。通过这个实例,我们可以了解Spring ...

    详解spring注解配置启动过程

    以下是对Spring注解配置启动过程的详细解析: 1. **初始化起点**: - 在Spring Web应用中,启动过程通常始于一个继承自`AbstractAnnotationConfigDispatcherServletInitializer`的类。例如,`WebMvcInit` 类中,...

    springsecurity使用配置详解

    Spring Security可以使用XML配置、Java配置或注解配置。XML配置是最传统的,但在现代项目中,Java配置和注解配置更受欢迎,因为它们更加直观且易于维护。 5. **Spring Security与Spring Boot集成**: 在Spring ...

    使用注解方式配置的spring_mvc_3.0

    ### 使用注解方式配置的Spring MVC 3.0 #### 概述与优势 随着软件工程的不断发展,...随着Spring框架的不断演进,注解配置已经成为构建Spring应用的标准实践之一,对于现代Java开发者而言,掌握这一技术至关重要。

    SpringMVC全注解配置

    全注解配置是Spring MVC中的一种现代配置方式,它允许开发者在不使用XML配置文件的情况下,通过注解来声明和管理组件。这种方式简化了项目的配置,提高了代码的可读性和可维护性。 在Java环境下,我们通常使用...

    Spring IoC简单示例-注解配置-Maven构建

    在本文中,我们将深入探讨Spring框架的核心特性——控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),以及如何通过注解配置和Maven项目构建来实现这一概念。Spring框架是Java...

    spring注解的详解及实例

    ### Spring注解详解及实例分析 #### 概述 随着技术的发展与演进,Spring框架在不断迭代过程中引入了大量的注解来简化应用的配置过程。相比于传统的XML配置方式,注解配置提供了更为简洁且直观的方式来定义Bean以及...

    Java之Spring注解配置bean实例代码解析

    Java之Spring注解配置bean实例代码解析 Java之Spring注解配置bean实例代码解析是Spring框架中的一种配置方式,它可以使用注解将bean实例化并配置到Spring容器中。这种配置方式可以代替传统的XML配置文件,更加简洁...

Global site tag (gtag.js) - Google Analytics