У меня есть небольшое приложение Java, которое подключается к базе данных MySQL. Для подключения к базе данных ТОЛЬКО, я хотел бы использовать Spring для управления пулом подключений JNDI.Как использовать @Autowired вместо ручной загрузки Spring beans?
У меня есть рабочая реализация для вышеуказанного, но для этого требуется ручная загрузка компонента соединения JNDI, тогда как я бы хотел использовать @Autowired.
Как преобразовать рабочий код в тот, который использует @Autowired
, чтобы получить соединение JNDI?
Это мой beans.xml файл (в папке SRC/основные/ресурсы):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns= ....>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/Database"/>
</bean>
<bean id="databaseMapper2Impl"
class="com.dataaccess.DatabaseMapper2Impl">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
раздел моего DatabaseMapper2Impl
класса:
public class DatabaseMapper2Impl {
private DataSource dataSource;
private JdbcTemplate jdbcTemplateObject;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
}
public OrderDTO getOrder(String orderNumber, String envToUse) {
String getOrderSql = "SELECT * FROM REPORTING.ORDER where ORDER_NUMBER = ? limit 1";
List<OrderDTO> orders = jdbcTemplateObject.query(getOrderSql, new Object[] { orderNumber }, new OrderMapper());
if (orders == null || orders.isEmpty()) {
return null;
} else {
return orders.get(0);
}
}
}
Это класс, где компонент соединения JNDI создается вручную:
public class DataDelegateImpl {
public OrderDTO getOrder(String orderNumber, String envToUse) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
DatabaseMapper2Impl x = (DatabaseMapper2Impl) context.getBean("databaseMapper2Impl");
return x.getOrder(orderNumber, envToUse);
}
}
Какие аннотации вы используете для этой услуги? Похоже, что бобы можно обнаружить весной, основываясь на том, что у вас есть. – Makoto
Не использовать какие-либо аннотации. Бобы загружаются с использованием: 'ApplicationContext context = new ClassPathXmlApplicationContext (" Beans.xml ")'; – Ahmad