我到处都读到有关Spring如何鼓励您在代码中使用接口的信息。我没看到 您的spring
xml配置中没有接口的概念。Spring的哪一部分实际上鼓励您使用接口(而不是文档)?
为类定义接口时,它有助于进行依赖项注入。您的Spring配置文件本身不包含任何有关接口的信息-您只需输入类的名称即可。
但是,如果您要注入另一个提供“等效”功能的类,则使用接口确实会有所帮助。
例如,假设您有一个分析网站内容的类,然后将其注入Spring。如果您要注入的类知道实际的类,那么为了更改它,您必须更改大量代码才能使用其他具体类。但是,如果您创建了一个Analyzer
界面,则可以像制作一个模型一样轻松地注入原始内容DefaultAnalyzer
,DummyAnalyzer
甚至可以像完成一个PageByPageAnalyzer
或多个其他操作一样轻松地注入原始内容。为了使用其中之一,您只需要更改要在Spring配置文件中注入的类名,而不必遍历代码更改类。
我花了大约一个半月才真正开始看到它的用处。就像大多数事情(以企业语言)最终有用一样,乍一看似乎毫无意义地增加了工作,直到您的项目开始发展,然后您发现通过做更多一点的工作而节省了多少时间。
问题内容: 我有一个接口IMenuItem 然后我有一个接口实现 有什么方法可以仅使用IMenuItem接口从配置类创建MenuItem的多个实例?与@autowired之类的?还可以通过指定构造函数的参数来自动装配吗? 问题答案: 实际上对于这种情况是完美的。您可以自动连接特定的类(实现)或使用接口。 考虑以下示例: 现在,您可以根据注释值选择对象的名称,从而选择使用其中一种实现方式 像这样:
问题内容: 我有一个Web应用程序,这里有一个典型的问题,即针对不同环境需要不同的配置文件。某些配置作为JNDI数据源放置在应用程序服务器中,但是某些配置保留在属性文件中。 因此,我想使用Spring配置文件功能。 我的问题是我没有运行测试用例。 context.xml: 测试: 问题似乎是无法解析用于加载配置文件的变量: 当前配置文件应使用注释设置。由于这是一个测试用例,因此我将无法使用。如果可
问题内容: 如何使用和在一起? personelRepository.java personelService.java personelController.java 当我运行它时,会出现这样的错误。但是,如果我像findAll(Pageable page)和findAll(Specification filter)一样分别调用findAll()函数,它将起作用。但是我不能一起使用。 问题答案:
问题内容: 使用Spring接线,如果我有一个接口的多个实现,则可以使用@Qualifier指定我想要的接口。 例如,假设我有一个 和一个 然后,我可以选择一个特定的实现: 但是有没有一种方法可以根据环境选择实现? 即,如果将spring.profiles.active设置为local,则将选择Car的“ Toyota”实现,但是如果将spring.profiles.active设置为dev或st
问题内容: 我处理遗留代码库,其中未在春天有线了一类需要获得一类 是 在春季接线。我希望创建一个在启动时已连接的工厂类,然后可以调用getInstance()方法来获取一个连接对象。最好的方法是什么? 例: 我需要在启动时连接FooFactory,以便LegacyA可以简单地调用getInstance(),以便它返回Foo的实例(这也是在应用程序上下文中定义的bean)。 编辑:我不得不重新整理我
问题内容: 我正在尝试转换此原始sql查询: 在Spring Data规范中,我认为到目前为止我的问题是如何连接这些表。 这是我当前在规范中的转换: 我得到这个异常: 我想补充一点,例如我是Spring框架的新手,因此这是我在Spring上的第一个应用程序,因此我对新手问题表示歉意;) 编辑:添加的实体产品,BeforeRelationShip Product和FollowRelationShip