如何让Spring在运行时使用名称或某个属性来使用单个实现类?
首先,Spring中对实现没有限制,您可以自由地实现任意多的类。
下面的示例可以帮助您理解多个实现,以及如何在运行时选择一个:
假设您有两个DAO类,一个用于Oracle,第二个用于MySQL,这两个类都实现了一个DAO接口。在Spring配置文件中将实现定义为bean。在business类中,您有一个类型为DAO的attribut,而在spring配置文件中,您选择真正的类型wheather Oracle或MySQL,或者使用spring注释@autowired
注入。
这减少了耦合性,从Oracle到MySQL将变得容易。
@Service
public class Business {
@Autowired
private Dao daoImpl;
//Business methods that invoks Dao methods
}
在Spring配置文件(XML文件)中,可以使用以下内容:
<bean id="daoImpl" class="app.com.MySQLDaoImpl OR app.com.OracleDaoImpl"/>
只需更改bean的类attribut就可以更改整个实现,而不更改业务类
我有一个包裹 现在我想禁止在之外的实现,但是应该是公共的,因为我将其用于。 如何做到这一点? 这有什么“套餐最终模式”吗? 你有过这样的情况吗? 详情: 我知道有可能只使用带有包私有构造函数的抽象类,而不是接口,但是和扩展不同的类,因此我需要多重继承(因为模拟多重继承(例如,见有效的Java项目18)在这里不起作用)。
问题内容: 我的意思是: 我用谷歌搜索,发现了这个: 表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, 问题答案: 表示实现,当旨在声明仅提供不提供实现时。 A 100%,是功能上等同于,但它也可以实现,如果你想(在这种情况下,它不会保持1
问题内容: 一个类文件可以实现几个接口?类文件使用的接口数量是否有限制?提前致谢。 问题答案: 出于所有实际目的,一个类可以实现的接口数量没有限制,但是java不允许您从多个超类继承。 但是,如果您确实想要nitpick,则可以说一个类可以实现的接口数量受接口ID可以以java字节码表示的最大值限制,或者必须由实现这些接口的代码存储量来限制,或者存储字节码的硬盘空间量。这些都是愚蠢的论点。显然,由
假设我需要依赖一个Spring bean的几个实现。我有一个接口和两个实现:和。 下面的注入将使用哪个实现?
craco 配置多项目入口! 需求如下: 在原有的项目中增加一个单独的html页面,想构建成两个不同的项目入口文件, 如: 构建完是 但是有各自的js引用文件, 又有公共的第三方库; craro:7.1.0 react-scripts: 5.0.1 webpack: 5.88.2 已经尝试使用customize-cra + react-app-rewire-multiple-entry 实现,并且
我的目标是让一系列测试一个接一个地运行。我希望有一个“登录”脚本让用户登录,然后在同一窗口/驱动程序中继续执行以下脚本。我使用的是TestNG,所以我的测试套件设置在TestNG.xml文件中(如果有帮助的话)。 我要运行的下一个脚本: