gpt4 book ai didi

java - 如何在 XML 配置中注入(inject) Autowired beans?

转载 作者:行者123 更新时间:2023-12-01 19:52:40 26 4
gpt4 key购买 nike

我的 Dao 和 DaoImpl 类如下:

public interface MyDao{
}
@Service(value = "MyDao")
public class MyDaoImpl implements MyDao{
}

我需要 MyDaoImpl 注入(inject)到类 Driver.java 中的变量 myDao

public class Driver{
MyDao myDao;
public MyDao getMyDao() {
return myDao;
}
public void setMyDao(MyDao myDao) {
this.myDao = myDao;
}
}

现在的问题是我正在使用 XML 创建 bean,如下所示:

<bean id="driver123" class="com.Driver">
</bean>

如何使用 XML 将 MyDaoImpl 对象(通过 Annotation 创建)注入(inject)到该 bean 中?如果 MyDaoImpl 是通过 XML 创建的,我就可以使用属性和引用配置。

但是我在这里该怎么办?

最佳答案

首先为配置创建配置类,如下所示

package com.example.amer.config;

import com.example.amer.dao.MyDaoImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Config {

@Bean(name = "myDaoImpl")
public MyDaoImpl myDaoImpl()
{
MyDaoImpl myDao = new MyDaoImpl();
return myDao;
}
}

这里我们创建MyDaoImpl Bean

和MyDao接口(interface)

package com.example.amer.dao;

public interface MyDao {

public String getUserByName();
}

和驱动程序类

package com.example.amer;

import com.example.amer.dao.MyDao;

public class Driver {
MyDao myDao;

public MyDao getMyDao() {
return myDao;
}

public void setMyDao(MyDao myDao) {
this.myDao = myDao;
}

}

接下来我将像这样创建 xml beans

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

<!-- Scan the JavaConfig -->
<context:component-scan base-package="com.example.amer.config" />

<bean id="driver" class="com.example.amer.Driver">
<property name="myDao" ref="myDaoImpl"></property>
</bean>

</beans>

在 xml 中,我们扫描包含 MyDao Impl 的 Java 配置我创建驱动程序 bean 并定义为 myDao 属性,然后我引用 MyDaoImpl bean,其名称在 @Bean(name="myDaoImpl") 中定义

这样就可以了。

关于java - 如何在 XML 配置中注入(inject) Autowired beans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59072520/

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