场景:
接口或抽象类,有多个实现/子类。使用Spring,&Autoinjected关联的是接口/抽象类,怎么让spring可以在运行时动态注入具体的实现那?
参考:
How to use @Autowired to dynamically inject implementation like a factory pattern
http://stackoverflow.com/questions/5725222/how-to-use-autowired-to-dynamically-inject-implementation-like-a-factory-patter
How to get beans created by FactoryBean spring managed?
http://stackoverflow.com/questions/4970297/how-to-get-beans-created-by-factorybean-spring-managed
上面的场景,是因为我们希望将业务处理过程抽象出来,将各种实现中公共的部分放到一个抽象类中。这种业务处理过程的抽象,用Method chaining,或builder,或结合使用其他的设计模式,哪个比较好那?
参考:
Method chaining with value objects
http://stackoverflow.com/questions/1981769/method-chaining-with-value-objects
分享到:
相关推荐
在Java开发中,Spring框架因其强大的功能和灵活性而备受推崇,而在处理NoSQL数据库如MongoDB时,Spring Data MongoDB提供了便捷的接口和抽象,使得开发者能更加专注于业务逻辑,而非底层数据访问的细节。本文将详细...
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' ``` 2. 配置MongoDB:在Spring Boot项目中,可以使用`application.properties`或`application.yml`文件配置MongoDB连接信息。例如: ...
在Spring框架中,Spring JDBC是连接数据库的重要模块,它提供了对JDBC的抽象层,使得开发者可以更加方便、高效地进行数据库操作。本教程将详细讲解如何在Spring Boot项目中配置Spring JDBC,以便进行数据库开发。 ...
Spring Data Redis是Spring框架的一部分,它提供了与Redis交互的抽象层。通过添加`spring-boot-starter-data-redis`依赖,我们可以轻松启用Spring Boot对Redis的支持。在`pom.xml`或`build.gradle`文件中,你需要...
Spring Data Redis是Spring Framework的一个模块,提供了对Redis的高级抽象。通过使用Spring Data Redis,我们可以方便地进行连接池管理、序列化以及命令操作。 集成Redis到Spring Boot项目中,我们需要在`pom.xml`...
Spring RMI在此基础上提供了更高级别的抽象,通过Spring的依赖注入(DI)和AOP(面向切面编程)能力简化了服务的创建和调用。 要实现Spring RMI,我们需要以下组件: 1. **远程接口(Remote Interface)**:这是...
在编程领域,IOC(Inversion of Control)容器是一种设计模式,它将对象的创建和管理权从...在实际项目中,我们可以结合其他设计模式,如工厂模式和抽象工厂模式,进一步完善 IOC 容器的功能,以适应更复杂的场景需求。
Spring实战之抽象Bean和子Bean定义与用法示例 在Spring框架中,抽象Bean和子Bean是两个非常重要的概念,它们在Bean的定义和使用中扮演着关键角色。抽象Bean是指不能被实例化的Bean,而子Bean则是继承了抽象Bean的...
**Spring框架**是整个SSM的核心,它提供了一个全面的依赖注入(DI)容器,用于管理对象的生命周期和装配。Spring还提供了AOP(面向切面编程)支持,方便进行日志记录、事务管理等通用功能的实现。此外,Spring还包含...
在Java语言中,词法分析器需要处理的关键字、标识符、常量、运算符等,并生成相应的抽象语法树(AST)的叶子节点。 语法分析(Syntax Analysis)紧接着词法分析,通常由解析器完成。它根据语法规则将词法单元流转换...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域具有广泛的应用。这个"struts2引用库"主题主要涵盖了Struts2框架的核心组件、依赖库以及如何在项目中正确引用和配置...
Spring Boot是Spring框架的一部分,它提供了一种简化Spring应用初始搭建以及开发过程的方式。Redis则是一种高性能的键值存储系统,常用于缓存、消息队列以及持久化数据存储等多种场景。 **1. 添加依赖** 在Spring ...
Spring框架还提供了其他的线程池和定时任务执行的实现类,例如ApplicationEventMulticaster、Quartz等,这些实现类都使用TaskExecutor和TaskScheduler作为抽象接口来屏蔽掉底层JDK版本间以及Java EE中的线程池和定时...
DAO模式的主要目标是通过提供一个抽象层,使得业务逻辑组件与底层数据存储机制解耦,从而降低了系统的复杂性,提高了可维护性和可测试性。 在DAO模式中,主要有四个角色: 1. 数据访问接口(Data Access Interface...
- Spring框架广泛使用接口和XML来实现依赖注入(Dependency Injection, DI)。DI有助于降低耦合度,使代码更加灵活和易于测试。 - 在XML配置文件中,可以声明bean定义,指定其类、属性、依赖关系等。例如: ```...
在 Java 中,我们可以使用依赖注入框架,例如 Spring 框架,来实现依赖注入。例如,我们可以使用 @Autowired 注解来注入依赖项,例如: ```java @Service public class MyService { @Autowired private MyDAO ...
**解答**: Spring + Hibernate 组合是一种常用的 Java 开发模式,它结合了 Spring 框架的依赖注入和事务管理功能,以及 Hibernate 框架的对象关系映射功能。 - **Spring**: 提供了一个轻量级的容器,用于管理应用...