首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在spring框架中设计beans

如何在spring框架中设计beans
EN

Stack Overflow用户
提问于 2012-12-15 15:01:40
回答 2查看 196关注 0票数 0

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

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

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

代码语言:javascript
复制
public class MyService{
    public MyService(String connectionStr){ ... }
}

当您需要这样的服务时,您可以调用:

代码语言:javascript
复制
MyService service = new MyService("xxx");
...

我以前就是这么干的。没什么花哨的。现在,如果我在Spring下用Java做这件事,不知何故我希望服务是一个bean。我需要这样做:

代码语言:javascript
复制
@Component
public class MyService{
    @Autowired
    public MyService(@Value(...some connection string...) String connectionStr) {...}
}

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

谢谢。

EN

Stack Overflow用户

发布于 2012-12-15 15:35:11

我不太明白你的问题,但我会试着回答你。

看看here或谷歌,看看你是否真的想去春天。关于你的查询,对于你的服务,你必须在你的spring上下文中定义一些类似的东西。

代码语言:javascript
复制
<bean id="myService" class="com.blah.MyService">
    <constructor-arg>
        <value>http://HOST/test/</value>
    </constructor-arg>
</bean>

你的服务等级将是,

代码语言:javascript
复制
public class MyService{

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

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

代码语言:javascript
复制
ApplicationContext context = new ClassPathXmlApplicationContext(
                                new String[] { "context.xml" });
                MyService service = (MyService) context
                                .getBean("myService");

上面的内容也可以使用注释来实现。请查看here了解更多详细信息

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13890172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档