我有一个 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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<bean id="helloWorld" class="com.a.b.HelloWorld">
<property name="attr1" value="Attr1 from XML"></property>
</bean>
<bean id="helloWorld2" class="com.a.b.HelloWorld2">
<property name="attr2" value="Attr2 from XML"></property>
</bean>
</beans>
我有像这样使用构造函数自动装配
public class HelloWorld2{
private String attr2;
public void setAttr2(String message){
this.attr2 = message;
}
public void getAttr2(){
System.out.println("getAttr2 == " + attr2);
}
}
public class HelloWorld{
private String attr1;
private HelloWorld2 helloWorld2;
public HelloWorld(){
}
@Autowired
public HelloWorld(HelloWorld2 helloWorld2){
System.out.println("hhh");
this.helloWorld2 = helloWorld2;
}
public void setAttr1(String message){
this.attr1 = message;
}
public void getAttr1(){
System.out.println("getAttr1 == " + attr1);
}
public void getH(){
helloWorld2.getAttr2();
}
}
自动布线工作正常。
现在我想把我的beans移到配置类中。但是如何移动代码以使自动布线工作呢?
我已经试过了,但是不起作用
@Configuration
public class Config {
@Bean
public HelloWorld helloWorld(){
HelloWorld a = new HelloWorld();
a.setAttr1("Demo Attr1");
return a;
}
@Bean
public HelloWorld2 helloWorld2(){
HelloWorld2 a = new HelloWorld2();
a.setAttr2("Demo Attr2");
return a;
}
}
我认为您想要实现的是将< code>HelloWorld2实例注入到创建< code > hello world < code > @ Bean 的方法中?
这应该可以做到:
@Configuration
public class Config {
@Bean
public HelloWorld helloWorld(HelloWorld2 helloWorld2){
HelloWorld a = new HelloWorld(helloWorld2);
a.setAttr1("Demo Attr1");
return a;
}
@Bean
public HelloWorld2 helloWorld2(){
HelloWorld2 a = new HelloWorld2();
a.setAttr2("Demo Attr2");
return a;
}
}
这可能是这些问题的重复:
问题内容: 我正在阅读Pro Spring3这本书。它有一段确实让我感到困惑。该段是关于春季自动装配的。这是节选: 在大多数情况下,是否应该使用自动装配的问题的答案肯定是“不!”。自动装配可以在小型应用程序中节省时间,但在许多情况下,这会导致不良做法,并且在大型应用程序中不灵活。使用byName似乎是个好主意,但它可能会导致您为类提供人为的属性名称,以便可以利用自动装配功能。Spring的整个想法
我正在开发一个具有可重用逻辑的公共java库,以与一些AWS服务交互,这些服务将依次被多个消费者应用程序使用。出于这里概述的原因,以及Spring Boot似乎为SQS集成之类的东西提供了大量无模板代码的事实,我决定将此公共库实现为具有自动配置的定制Spring Boot启动器。 我也是Spring框架的新手,因此遇到了一个问题,即我的自动配置类的实例变量没有通过AutoWired注释进行初始化。
我正在开发一个数据访问库,并希望能够以最少的配置将其作为依赖项包含在其他项目中(理想情况下只是自动连接存储库)。特别是,这个库使用自动配置类(在中启用)进行设置,并且需要禁用其他自动配置类才能工作(和)。 是否可以在从属项目之外执行此操作? 为了使配置尽可能简单,我希望避免将排除项放在依赖项目的注释或其属性中。 更新: 在我的@Configuration上,我尝试添加注释: 这导致了 Illega
我有一个很小的Spring Boot应用程序(这只是一个概念证明),它运行在H2内存数据库上,并使用spring-data-jpa来处理持久性。它由一个允许处理帖子和评论的REST API组成,因此您可以创建和检索帖子以及对那些帖子的评论。应用程序有两个JPA实体和,我面临的问题是,在添加实体之后,应用程序无法启动,但是在添加之前,当我刚刚拥有实体时,应用程序已经启动并通过了测试。看来spring
我尝试了一切,但我似乎无法禁用Spring启动2.1.10中的Spring安全自动配置--我认为自动配置似乎是由执行器触发的,但我试图排除几乎所有可能的类,但似乎仍然引入了过滤链。当我通过属性文件进行配置时,它短暂地工作了一下,但又停止了工作。 我试过了
基本上,我想问的是:将Spring Boot自动配置的bean自动导入XML配置文件的等价物是什么? 下面是我的主要Spring Boot入口点,它只是所有文档中列出的标准类: 我主要在一个Spring集成应用程序中使用它,在这个应用程序中Java配置还没有得到很好的支持,框架的核心是基于XML配置的,但是我希望在一些集成元素中使用Spring Boot自动配置的和bean。 https://gi