gpt4 book ai didi

java - 如何使用注释为 spring 设置 context.xml?

转载 作者:行者123 更新时间:2023-11-28 23:31:33 27 4
gpt4 key购买 nike

我正在使用 Tomcat 托管 Web 应用程序,并且想知道我是否可以使用 Spring 注释在 tomcat 的 conf 文件夹中创建与 context.xml 等效的内容。 context.xml 示例:

<?xml version="1.0" encoding="UTF-8"?> <!-- The contents of this file will be loaded for each web application -->
<Context> <!-- Default set of monitored resources -->
<ResourceLink name="jdbc/SomeDB" global="jdbc/SomeDB" type="javax.sql.DataSource"/>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

如果这可以用注释来做,你能告诉我如何最好用一个例子来完成吗?

最佳答案

据我所知,没有注释等同于以下 applicationContext.xml 片段:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd">

<jee:jndi-lookup
id="someDbDataSource"
jndi-name="jdbc/SomeDB"
resource-ref="true" />
...

因为将数据源注入(inject)您的 DAO 非常容易:

public class SomeDbJdbcDaoSupport {

public static final String SOME_DB_DATA_SOURCE = "someDbDataSource";
private JdbcTemplate jdbcTemplate;

@Autowired
@Qualifier(SOME_DB_DATA_SOURCE)
public void setSomeDbDataSource(DataSource dataSource) {
if (jdbcTemplate == null || dataSource != jdbcTemplate.getDataSource()) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
}
...

数据源配置被写入服务器配置文件,因为服务器管理一个连接池,但如果您使用不同的池管理器,如 c3po您将在 spring configuration files 中定义数据源属性避免任何数据源服务器配置。

关于java - 如何使用注释为 spring 设置 context.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29685498/

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