我尝试使用JNDI属性通过注释方式将Spring设置为数据库连接.我设置了我的server.xml
<Resource name="jdbc/cms"
global="jdbc/cms"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cms"
username="root"
password="admin"
maxActive="100"
maxIdle="20"
minIdle="5"
maxWait="10000"/>
Run Code Online (Sandbox Code Playgroud)
的context.xml
<ResourceLink name="jdbc/cms"
global="jdbc/cms"
auth="Container"
type="javax.sql.DataSource" />
Run Code Online (Sandbox Code Playgroud)
DispatcherServlet的
public class Dispatcher implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException{
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(ApplicationContext.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
Run Code Online (Sandbox Code Playgroud)
appicationContext
@Configuration
@ComponentScan("com.myproject")
@EnableTransactionManagement
public class ApplicationContext {
@Bean(name="dataSource")
@Resource(name="jdbc/cms")
public DataSource getDataSource(){
JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
dsLookup.setResourceRef(true);
DataSource dataSource = dsLookup.getDataSource("java:comp/env/jdbc/cms");
return dataSource;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行我的项目时,我可以看到这个东西:
Caused …Run Code Online (Sandbox Code Playgroud)