`

使用Spring2.5的Autowired实现注释型的IOC

阅读更多
使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护。

       以下是一个例子:

       先编写接口Man

       public interface Man {

           public String sayHello();

}

       然后写Man的实现类ChineseAmerican

       @Service

public class Chinese implements Man{

    public String sayHello() {

        return "I am Chinese!";

    }

}

 

       @Service

public class American implements Man{

    public String sayHello() {

        return "I am American!";

    }

}

 

@Service注释表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,例如Chinese实例化为chineseAmerican实例化为american,如果需要自己改名字则:@Service("你自己改的bean名")

 

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="testspring.main"/>
</beans>

spring的配置文件里面只需要加上<context:annotation-config/><context:component-scan base-package="需要实现注入的类所在包"/>,可以使用base-package="*"表示全部的类。

 

编写主类测试:

@Service

public class Main {

    @Autowired

    @Qualifier("chinese")

    private Man man;

   

    public static void main(String[] args) {

        // TODO code application logic here

        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

        Main main = (Main) ctx.getBean("main");

        System.out.println(main.getMan().sayHello());

    }

 

    public Man getMan() {

        return man;

    }

}

 

Man接口前面标上@Autowired@Qualifier注释使得Man接口可以被容器注入,当Man接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串来注入。否则可以省略,只写@Qualifier

<!-- -->
分享到:
评论

相关推荐

    spring2.5 注解

    使用Spring2.5的Autowired实现注释型的IOC , 使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护

    使用 Spring 2_5 注释驱动的 IoC 功能.mht

    **Spring 2.5 注释驱动的 IoC 功能详解** Spring 框架自 2.5 版本开始引入了对注解的强大支持,极大地简化了依赖注入(Dependency Injection,简称 DI)的配置过程。注解驱动的 IoC(Inverse of Control,控制反转...

    spring 源码中文注释

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。这份"spring 源码...

    基于Maven构建的Spring IoC源码实例

    在"基于Maven构建的Spring IoC源码实例"中,我们可以学到如何使用Maven搭建Spring项目,并通过Spring IoC实现组件间的依赖注入。以下是这个实例中可能包含的关键知识点: 1. **Maven项目结构**:了解标准的Maven...

    spring-source中文注释版.zip

    下载"spring-source中文注释版.zip"后,你可以使用IDEA这样的集成开发环境直接导入,通过阅读注释来深入理解Spring框架的工作机制,这对于提升Java开发技能和解决实际问题大有裨益。同时,结合Spring官方文档和其他...

    关于spring boot中几种注入方法的一些个人看法

    在 Spring 2.5 引入了 @Autowired 注释,我们平常直接引用的时候很少注意这些,只是自己写好了一个方法或者 springboot 自动配置好的一个方法我们要在另一个类中去调用,这个时候,我们就会采用该注释。 2. @...

    spring-framework-5.2.0.RELEASE-master.zip

    通过阅读`@Autowired`、`@PostConstruct`、`@PreDestroy`等注解的实现,我们可以了解到Spring如何进行自动装配。同时,对于`BeanDefinition`、`BeanPostProcessor`等关键接口的注释,能帮助我们深入理解bean的生命...

    简单手写springIOC注解模式

    3. **@Autowired**: Spring通过此注解实现依赖注入。Spring会根据类型或名称自动匹配并注入依赖。如果需要基于名称注入,可以添加`@Qualifier("dependencyName")`。 4. **@Repository、@Service、@Controller**: ...

    spring源码深度解析(包含所有spring源码,带全部的注释以及案例,很适合入门级)

    1. **IoC容器**:Spring的核心是IoC容器,它负责管理对象的生命周期和对象之间的依赖关系。IoC通过配置文件或注解来定义对象及其依赖关系,实现对象的创建和管理。在源码中,你可以看到`BeanFactory`和`...

    ioc-aop:看完spring的源码后,自己手动实现一个类似Spring的IOC和AOP功能的演示,代码注释详细,项目可以直接运行-看

    于是经过一番研究手动实现一个类似Spring的IOC和AOP功能的演示,本demo成功实现了容器的依赖注入和切面的功能,aop使用CGLIB实现。 说明 首先代码的测试运行demo见 应用程序 public static void main(String[] args...

    spring+maven项目工程

    在"通过注释实现IOC"部分,我们指的是使用Spring的注解驱动配置来管理对象之间的依赖关系。例如,@Autowired注解可以自动将匹配类型的bean注入到需要它的类中,无需显式地创建对象实例。此外,@Component、@Service...

    Spring_in_Action

    1. **依赖注入**:Spring的核心特性之一,如何通过XML或注解方式实现对象间的依赖关系管理,以及如何使用@Autowired和@Qualifier注解。 2. **AOP(面向切面编程)**:解释什么是切面,如何定义和使用通知(advice)...

    spring源码下载

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring Framework 2.5.6是该框架的一个较早版本,但仍然包含了许多...Spring源码的结构清晰,注释丰富,是学习Java企业级开发的宝贵资源。

    spring 4.0.7 源码

    在源码中,可以看到`org.springframework.beans`和`org.springframework.context`包下的类,如`BeanFactory`和`ApplicationContext`,它们是IoC容器的实现基础。 2. **AOP(Aspect Oriented Programming)**:...

    Spring动态代理二.docx

    升级后,靠注释自动装配@Autowired 实现,但是底层还是靠 ref 实现。 集成 web: 在 web.xml 文件内添加监听,用来加载 Spring 的主配置文件。标准配置文件路径:配置文件放入 config 文件夹(日志配置文件保留在...

    Struts2+Spring+Ibatis整合

    5. **Action类和Service层**:在Struts2中定义Action类,这些类通常是Spring中的Bean,通过@Autowired注解实现依赖注入。Service层负责业务逻辑,它调用DAO层进行数据操作。 6. **DAO层**:使用iBatis提供的...

    静态方法中调用Spring注入过程解析

    Spring框架使用IOC容器来管理Bean的生命周期,使得开发者可以专注于业务逻辑的实现。 @Autowired @Autowired是Spring框架提供的一个注解,用于实现依赖注入。@Autowired可以将Bean自动装配到容器中,使得开发者...

    spring-master-class:Spring Framework 5的更新介绍。成为了解Spring In Depth核心功能的专家。 您将在课程期间编写单元测试,AOP,JDBC和JPA代码。 包括对Spring Boot,JPA,Eclipse,Maven,JUnit和Mockito的介绍

    您将了解如何使用Spring注释-@ Autowired,@ Component,@ Service,@ Repository,@ Configuration,@ Primary...。 您将深入了解Spring MVC-DispatcherServlet,模型,控制器和ViewResolver 您将使用各种Sp

Global site tag (gtag.js) - Google Analytics