0

我是 Spring 框架的新手。也许这更像是一个 Java EE bean 设计问题,而不是与 Spring 框架相关的问题。无论如何,我只是拍摄它,看看我能把自己弄得多么清楚。

所以我有一个服务。该服务将连接字符串作为构造函数参数。然后您可以使用该服务将文件上传到连接字符串指示的位置。

因此,您将从以下内容开始:

public class MyService{
    public MyService(String connectionStr){ ... }
}

当您需要此类服务时,请致电:

MyService service = new MyService("xxx");
...

这就是我以前做的。没有什么花哨。现在,如果我在 Spring 下在 Java 中执行此操作,我会以某种方式希望该服务成为一个 bean。我需要这样做:

@Component
public class MyService{
    @Autowired
    public MyService(@Value(...some connection string...) String connectionStr) {...}
}

但是我很困惑如何在编译时注入依赖项?我永远不知道我将传递什么连接字符串来创建服务。当我阅读 Spring 教程时,它们中的大多数都有在 XML 配置文件中编码的参数。我可以像上面那样设计一个 Spring bean,但需要在运行时传递参数吗?

谢谢。

4

2 回答 2

2

你可以设计一个这样的方法:

void upload(String location,XXX other parameters);
于 2012-12-15T07:32:27.243 回答
0

我没有真正得到你的问题,但会尝试回答。

检查这里或谷歌检查你是否真的想去春天。来到您的查询中,对于您的服务,您必须在 spring 上下文中定义类似这样的内容。

<bean id="myService" class="com.blah.MyService">
    <constructor-arg>
        <value>http://HOST/test/</value>
    </constructor-arg>
</bean>

您的服务等级将是,

public class MyService{

    public MyService(String connectionString) {...}
}

这是您在应用程序中调用服务的方式

ApplicationContext context = new ClassPathXmlApplicationContext(
                                new String[] { "context.xml" });
                MyService service = (MyService) context
                                .getBean("myService");

以上也可以使用注释来实现。在这里查看更多详情

于 2012-12-15T07:35:11.020 回答