我试着在Tomcat中配置JNDI。我试着用2个springboot应用程序。
- 第一个应用程序是使用springboot starter jdbc。
- 二是使用springboot启动器jpa。
两种应用程序的控制器相同:
@RequestMapping(
value = "/employees",
method = RequestMethod.GET)
public ResponseEntity<Object> getEmployees() {
System.out.println("inside getEmployees() method ....");
List<Employee> employeeList = repository.findAll();
return new ResponseEntity<>(employeeList, HttpStatus.OK);
}
我还在应用程序属性中配置了jndi:
spring.datasource.jndi-name=java:comp/env/jdbc/TestDB
在使用springboot starter jdbc的应用程序的存储库类中:
@Repository
public class EmployeeRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Transactional(readOnly = true)
public List<Employee> findAll() {
return jdbcTemplate.query("select * from EMPLOYEE", new EmployeeRowMapper());
}
}
另一方面,我使用JpaRepository:
@Repository
public interface EmployeeRepository extends JpaRepository<EmployeeEntity, Long> {
@Override
@Transactional(readOnly = true)
List<EmployeeEntity> findAll();
}
到目前为止一切顺利。server.xml和context.xml在tomcat中配置正确。对于这个测试,我使用的是MySQL v.5...包含springboot starter jdbc的应用程序,我使用get方法访问数据库数据。在另一个应用程序中,war已部署但未启动。
我有三个问题:
1.我尝试使用JNDI来处理连接池
1.我的大部分开发都使用JPA(我的应用程序有很多Web服务...)
1.最后一个问题应该是一个新问题:有没有办法从外部应用程序使用Tomcat连接池到数据库?例如,让一个jar使用相同的连接池。对于这一点,我没有找到任何示例
1条答案
按热度按时间thtygnil1#
我通过以下操作解决了此问题:我创建了配置类
我还将我的Spring Boot版本从3.0.0版降级到2.7.4版--例如SNAPSHOT。我还添加了以下依赖项: