gpt4 book ai didi

java - Spring在xml中声明组件

转载 作者:行者123 更新时间:2023-11-29 07:50:07 28 4
gpt4 key购买 nike

我在项目中主要使用@Autowired@Component注释。但是,我将使用 DataSource 类进行数据库操作。

所以,我在我的 dispatcher-servlet.xml 中使用它:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/market"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>

在我的 dao 类中,我的 dataSource setter 是:

@Autowired
private DataSource dataSource;

public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplateObject = new JdbcTemplate(dataSource);

}

然而这并不能解决问题。我的jdbcTemplateObjectnull

如果我不使用“context:component scan ...”并使用经典的 spring beans,而不使用 @Autowired 注释,一切都会很好。

我可以使用我的数据库。但是,我不想在我的 xml 文件中一一声明所有的 beans。随着项目的发展,它就不再实用了。我怎么解决这个问题 ?是否可以在我的 dispatcher-servlet.xml 中将 dataSource 声明为组件,以便 @Autowired 在 dataSource 上工作?

最佳答案

当您在字段上使用@Autowired时,Spring将查找依赖项并在此处注入(inject)它们,这里的setter方法是没有意义的。

你不需要担心spring将如何注入(inject)依赖。它将处理完整的生命周期。

有关 Spring 依赖注入(inject)的更多信息,请访问 this链接。

关于java - Spring在xml中声明组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711891/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com