在spring中可以通过service来把一个业务层的类交给spring窗口进行管理,而通过repository可以把持久层的类交给spring进行管理。今天只学习一下service交给spring进行管理。同时使用手功装配中的类型装配将字段值进行装配使用。
代码如下:
package cn.szzx.service; /** *@author whp *@Email wanghaipeng@szzxbj.com *@2013-5-30 * */ public interface Man { public void sayHello(); }
package cn.szzx.service.impl; import org.springframework.stereotype.Service; import cn.szzx.service.Man; /** *@author whp *@Email wanghaipeng@szzxbj.com *@2013-5-30 * */ @Service public class American implements Man { @Override public void sayHello() { System.out.println("american say hello"); } }
package cn.szzx.service.impl; import org.springframework.stereotype.Service; import cn.szzx.service.Man; /** *@author whp *@Email wanghaipeng@szzxbj.com *@2013-5-30 * */ @Service public class Chinese implements Man { @Override public void sayHello() { System.out.println("chinese say hello"); } }
package cn.szzx.test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Component; import cn.szzx.service.Man; /** * @author whp * @Email wanghaipeng@szzxbj.com * @2013-5-30 * */ @Component public class Main { @Autowired @Qualifier("chinese") private Man man; /** * @param args */ public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); Main main = (Main) ctx.getBean("main"); main.getMan().sayHello(); //System.out.println(main.getMan().sayHello()); } public Man getMan() { return man; } }
@Autowired @Qualifier("chinese") private Man man;
在进行装配的时候,如果接口Man的实现只有Chinese,而没有American的话,那么就可以不使用注解@Qualifier,直接使用@Autowired。因为Autowired是根据类型装配,如果在这个程序里没有使用Qualifier,在注入时spring就会扫描出两个相同类型的接口实例,一个是Chinese的实现,一个是American的实现。这样程序就会报错。
beans.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config /> <context:component-scan base-package="cn.szzx.*" /> </beans>
<context:annotation-config /> <context:component-scan base-package="cn.szzx.*" />
在beans.xml文件中要打开自动扫描功能。
相关推荐
在Spring框架中,`@Autowired`和`@Resource`注解是两个常见的依赖注入(DI, Dependency Injection)工具,它们都是用来解决组件之间的耦合问题,使得代码更加灵活和可测试。然而,这两个注解在具体使用时有一些关键性...
- **自动装配候选列表**:可以使用`@Autowired`注解的`@Qualifier`注解的`value`属性,提供一个bean的名称列表,Spring会尝试从列表中找到匹配的bean。 ### 4. 配置控制 - **@Autowired注解的可选性**:使用`...
在Spring框架中,`@Autowired`和`@Qualifier`注解是两个非常重要的依赖注入(Dependency Injection,简称DI)工具,它们帮助开发者管理并注入所需的Bean。本文将深入探讨这两个注解的工作原理、使用场景以及如何配合...
Spring注解详解 -- @Autowired、@Resource和@Service Spring框架中有三个非常重要的注解,即@Autowired、@Resource和@Service。这三个注解都是Spring框架中最常用的注解,它们都是用于解决Spring框架中的依赖注入...
**@Autowired 与 @ComponentScan**:在 XML 配置中,<context:component-scan> 标签用于扫描指定包及其子包下的类,寻找使用了 @Component、@Service、@Repository 和 @Controller 等注解的类,这些类会被注册为 ...
综上所述,理解`@Autowired`、`@Bean`和`@Service`的使用是掌握Spring框架依赖注入的关键。在实际开发中,我们需要根据项目需求灵活运用这些注解,确保bean的正确注入和管理。通过阅读和分析`spring-demo`项目,你...
在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...
Spring注解的主要目的是消除XML配置文件,使开发者能够通过在类或方法上直接添加注解来声明对象及其依赖关系。这个小例子将深入探讨Spring框架中的主要注解及其用法。 1. `@Component`、`@Service`、`@Repository` ...
7. **组件扫描**:Spring的`@Component`、`@Service`、`@Repository`和`@Controller`等注解用于标记组件类,配合`@ComponentScan`可以自动检测并注册这些类到IoC容器,从而实现bean的自动创建和依赖注入。...
### Spring注解知识点详解 #### 1. Spring注解基础 在Spring框架中,注解是一种轻量级的依赖注入方式,能够简化配置并提高开发效率。在本节中,我们主要介绍几个Spring中常用的注解,它们分别是@Component、@...
在工具方面,IDEA等现代Java集成开发环境提供了对Spring注解的强大支持,如代码提示、自动完成、重构等,使得开发过程更加高效。同时,对于复杂的项目,使用Maven或Gradle构建工具管理依赖,结合Spring Boot等快速...
通过分析这些代码,我们可以更好地理解Spring注解的使用和自动装配的工作原理。 总的来说,Spring注解极大地简化了Spring应用的配置,使得开发者可以更加专注于业务逻辑,而不是繁琐的XML配置。通过合理使用@...
在本文中,我们将深入探讨如何使用Spring注解进行属性注入,并重点关注`@Autowired`和`@Qualifier`这两个关键注解。 1. **使用`@Autowired`注解** 在传统的Spring配置中,我们需要在XML配置文件中手动定义bean及其...
在Spring框架中,@Autowired不仅提供了方便的依赖注入,还与其他注解(如@Service、@Repository、@Component、@Controller等)一起构成了强大的组件模型,使得应用程序的组件更加松耦合,易于测试和维护。...
本文将深入探讨@Autowired注解以及如何在Spring中使用它。 @Autowired注解的主要作用是自动将所需的依赖注入到目标bean的属性或者构造器中。在上面的例子中,我们看到Chinese和American类都实现了Man接口,并通过@...
本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...
使用Spring注解进行依赖注入,如`@Autowired`和`@Resource`,不仅简化了代码结构,减少了XML配置文件的冗余,还增强了代码的可读性和灵活性。通过合理利用这些注解及其辅助注解如`@Qualifier`,开发者可以更高效地...
在这个"我的博客spring注解概述的示例代码"资源中,我们可能找到如何使用`@Autowired`来自动装配bean的实例。 首先,让我们了解什么是依赖注入。在面向对象编程中,一个类往往依赖于其他类来完成特定任务。依赖注入...