1、在pom.xml中配置jetty插件,其中jetty.xml在
前面的文章 Jetty配置的两种方式 中有详细说明,jetty-env.xml为数据源配置文件。
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.19.v20160908</version>
<configuration>
<jettyXml>${basedir}/jetty.xml</jettyXml>
<webApp>
<jettyEnvXml>${basedir}/jetty-env.xml</jettyEnvXml>
</webApp>
<httpConnector>
<port>7000</port>
</httpConnector>
</configuration>
</plugin>
2、jetty-env.xml配置文件其中jdbc/semantic是jndi获取数据库配置信息的关键
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<New id="semanticDB" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>jdbc/semantic</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://10.27.19.223:3306/semantic</Set>
<Set name="User">xxx</Set>
<Set name="Password">xxxx</Set>
</New>
</Arg>
</New>
</Configure>
3、在Spring的bean配置文件中配置获取数据源的bean
<!-- spring security jdbc start-->
<jee:jndi-lookup id="csdataSource" jndi-name="jdbc/semantic" />
<bean id="urlJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="csdataSource" />
</bean>
<bean id="filterSql" class="com.suning.search.admin.web.controller.authority.FilterSql"/>
<bean id="filterService" class="com.suning.search.admin.web.controller.authority.FilterService">
<property name="filterSql" ref="filterSql"/>
</bean>
4、在java中调用
WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
FilterSql filterSql = (FilterSql)webApplicationContext.getBean("filterSql");//获取bean
JdbcTemplate urlJdbcTemplate = (JdbcTemplate)webApplicationContext.getBean("urlJdbcTemplate");
filterSql.setCsJdbcTemplate(urlJdbcTemplate);//注入jdbctemplate
boolean permit = filterSql.queryURL(url, user_id, user_role);