package com.knight.service; public interface Knight { public void doAction(); }
package com.knight.service.impl; import com.knight.service.Knight; import com.quest.service.Quest; public class BraveKnight implements Knight { private Quest quest; public BraveKnight(Quest quest) { this.quest = quest; } @Override public void doAction() { quest.qhelp(); } }
package com.quest.service; public interface Quest { public void qhelp(); }
package com.quest.service.impl; import com.quest.service.Quest; public class BitDragon implements Quest { public BitDragon() { } public void qhelp() { System.out.println("bit dragon"); } }
package com.quest.service.impl; import com.quest.service.Quest; public class RescueBeauty implements Quest { public RescueBeauty() { } public void qhelp() { System.out.println("rescue beauty"); } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="knight" class="com.knight.service.impl.BraveKnight"> <constructor-arg ref="quest"></constructor-arg> </bean> <bean id="quest" class="com.quest.service.impl.RescueBeauty"></bean> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="knight" class="com.knight.service.impl.BraveKnight"> <constructor-arg ref="quest"></constructor-arg> </bean> <bean id="quest" class="com.quest.service.impl.BitDragon"></bean> </beans>
package com.main; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.knight.service.Knight; public class KnightMain { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("rescueBeautyKnights.xml"); Knight knight = (Knight) context.getBean("knight"); knight.doAction(); ApplicationContext context1 = new ClassPathXmlApplicationContext("bitDragonKnights.xml"); Knight knight1 = (Knight) context1.getBean("knight"); knight1.doAction(); } }
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>SpringFirst</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value> rescueBeautyKnights.xml, bitDragonKnights.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
相关推荐
本示例将深入讲解如何在Spring中通过实例工厂方法实现依赖注入,并通过一个完整的可运行的`SpringIOCTest4`项目来展示这一过程。 首先,理解依赖注入的基本概念。依赖注入允许我们把一个对象(依赖)传递到另一个...
这个简单的例子展示了Spring依赖注入的核心概念,即通过setter方法将依赖注入到目标对象中。在实际开发中,开发者可以根据需求选择使用setter注入、构造函数注入或者字段注入。setter注入的灵活性在于可以在不改变...
本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...
Spring框架的依赖注入(Dependency Injection,简称DI)是其核心特性之一,它使得对象之间的关系在运行时由Spring容器管理,而不是硬编码在类内部。这样可以提高代码的可测试性和可维护性,因为对象的依赖关系变得松...
在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心设计模式,它使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本篇将详细讲解如何使用静态工厂方法进行依赖注入,结合提供的...
2. **Bean的实例化与依赖注入**:在Spring中,Bean是由Spring容器负责实例化的。当我们在代码中通过`ApplicationContext`获取`helloWorld` Bean时,Spring会自动创建并初始化Bean,同时执行依赖注入。例如: ```...
4. **注解注入**:自Spring 2.5版本开始引入,使用`@Autowired`、`@Qualifier`等注解可以更加简洁地进行依赖注入。`@Autowired`自动匹配类型,而`@Qualifier`用于指定特定的bean名称。 5. **属性注入**:除了基本...
总结来说,这个"spring完整demo实例"涵盖了Spring框架的多个关键方面,包括依赖注入、面向切面编程、数据访问、Web开发和测试。通过学习和实践这个示例,你可以更好地理解和掌握Spring在实际项目中的应用。记得根据...
总结起来,"反射与依赖注入DEMO"可能演示了如何在Java程序中利用反射动态操作类和对象,以及如何借助依赖注入框架(如Spring)来管理组件间的依赖关系,实现低耦合和高可扩展性。同时,接口的使用增强了代码的灵活性...
Spring是Java领域中最受欢迎的轻量级框架之一,它通过依赖注入(DI)和面向切面编程(AOP)来简化企业级应用的开发。在这个实例Demo中,我们将深入探讨Spring3的核心特性,包括IoC容器、bean管理、数据访问、事务...
在这个“springcloud的简单demo”中,我们将重点关注Eureka服务发现组件的集成,这是一个非常适合初学者上手的实例。 1. **Eureka**:Eureka是Netflix开发的服务注册与发现组件,它是SpringCloud生态中的关键部分。...
3. **依赖注入 (Dependency Injection, DI)**:Spring Boot 支持依赖注入,这是一种设计模式,可以降低组件之间的耦合。通过 `@Autowired` 注解,我们可以自动将 Spring 容器中的依赖注入到需要它们的bean中。例如:...
这就是一个最简单的Spring Demo,展示了如何使用Spring的依赖注入和配置管理。你可以根据需要扩展这个例子,比如引入AOP来实现日志记录,或者使用Spring Data访问数据库。Spring提供了丰富的API和模块,可以满足各种...
在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...
首先,Spring的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。依赖注入允许开发者在运行时动态地将依赖关系注入到对象中,降低了组件之间的耦合度,提高了...
Spring框架是Java开发中广泛应用的一个轻量级框架,它的核心特性包括依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)。在这个"spring简单demo"中,我们将深入探讨...
它提供了一个全面的编程和配置模型,旨在提高生产效率,同时鼓励面向接口的编程和依赖注入(DI)原则。Spring MVC是Spring框架的一个模块,专为构建Web应用程序而设计。在“SpringmvcDemo”这个例子中,我们将深入...
3. **配置Spring**:在src/main/resources目录下创建applicationContext.xml文件,这是Spring的配置文件,用于定义bean和设置依赖注入。 4. **编写Java代码**:创建Spring的Bean,如Service层和DAO层,然后通过@...
这个“Struts2+spring依赖注入+Hibernate+Dwr”的例子,是一个综合性的Web应用程序示例,旨在展示这四个技术如何协同工作。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP请求,调度控制流程,并将...
总结来说,这个小demo旨在教授如何使用Spring的注解配置进行应用程序的构建,包括创建和管理bean,处理依赖注入,以及利用AOP进行切面编程。通过理解和实践这些注解,开发者可以更高效地开发和维护Spring应用,同时...