- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 Spring MVC 中使用以下代码将 xml 转换为 Java 类。谁能告诉我如何设置 bean 创建的顺序。当我运行以下代码时。 JDBCTemplate bean 在 DataSource Bean 之前创建并给出异常,因为 Datasource 为 null。
package com.outbottle.config;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.apache.tomcat.jdbc.pool.DataSource;
@Configuration
@ComponentScan("com.outbottle")
@EnableWebMvc
public class Config extends WebMvcConfigurerAdapter
{
org.apache.tomcat.jdbc.pool.DataSource dataSource;
JdbcTemplate jdbcTemplate;
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
@Bean
public org.apache.tomcat.jdbc.pool.DataSource setDataSource()
{
dataSource = new DataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUsername("muhiuddin");
dataSource.setPassword("muhiuddin");
dataSource.setUrl("jdbc:oracle:thin:@172.19.0.10:1521:db10g");
dataSource.setMaxIdle(5);
dataSource.setInitialSize(5);
return dataSource;
}
@Bean
public JdbcTemplate setJdbcTemplate()
{
jdbcTemplate= new JdbcTemplate();
// setDataSource(); // if I call this function then every thing is OK.
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/*");
}
}
最佳答案
您的代码应该是:
@Bean
public javax.sql.DataSource dataSource()
{
final DataSource dataSource = new DataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUsername("muhiuddin");
dataSource.setPassword("muhiuddin");
dataSource.setUrl("jdbc:oracle:thin:@172.19.0.10:1521:db10g");
dataSource.setMaxIdle(5);
dataSource.setInitialSize(5);
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(final javax.sql.DataSource dataSource)
{
final JdbcTemplate jdbcTemplate= new JdbcTemplate();
// setDataSource(); // if I call this function then every thing is OK.
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
这样Spring知道要创建一个JdbcTemplate
bean,它需要一个DataSource
bean;所以它会正确决定顺序。
您通过使用实例变量绕过了 Spring,Spring 无法确定实例变量的创建时间。
<小时/>另外两件事:
@Bean
方法的名称设置 bean 名称,您真的想要一个名为 setDataSource
的 DataSource
bean 吗?接口(interface)
或抽象类
而不是特定类型,这是为了鼓励通过接口(interface)
Autowiring 。关于java - Spring Bean创建顺序 WebMvcConfigurerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39033101/
这是我正在处理的 WebConfig 代码: package hello.config; import org.springframework.context.annotation.Configura
我已经在 Spring MVC 中使用以下代码将 xml 转换为 Java 类。谁能告诉我如何设置 bean 创建的顺序。当我运行以下代码时。 JDBCTemplate bean 在 DataSour
我在我的 Spring Boot 应用程序中成功地使用了 @EnableSpringDataWebSupport 来启用分页、排序等等。然而,在某些时候,我不得不引入一个自定义参数解析器,并使用 Ja
我只是迁移到 spring mvc 版本 5.0.1.RELEASE 但突然在 eclipse STS WebMvcConfigurerAdapter 被标记为已弃用 public class Mvc
我正在尝试在 Spring Boot 应用程序中实现转换器,但由于某种原因,我对 addFormatters(FormatterRegistry formatterRegistry) 的重写从未被调用
注意以前已将其标记为已回答,但是随着我对基本组件的理解得到了改善,我看到我们的最初答案仅解决了空指针,但未解决根本原因。目前,根本原因似乎是缺少对分发侦听器和附加到容器的dwrServlet上上下文的
我想在 Windows 中使用 WebMvcConfigurerAdapter 添加资源处理程序,但在 Linux 中它不起作用,所以我添加了 WebMvcConfigurationSupport。
我想添加资源处理程序。在论坛中,他们使用 WebMvcConfigurationSupport:http://forum.springsource.org/showthread.php?116068-
由于 WebMvcConfigurerAdapter 从 Spring 5.0 开始已被弃用,我已将其更改为 WebMvcConfigurationSupport,但我得到的响应为空值。 { "key
我的应用有以下配置: @EnableTransactionManagement @EnableWebSecurity public class SecurityApiConfiguration e
有2个配置,在不同的jar文件中,我想控制拦截器注册的顺序。一个拦截器可能依赖于另一个拦截器设置的数据。 我已经在 addInterceptors 方法上尝试过 @Order。 @Configurat
我有一个使用 Spring Security 和 Thymeleaf 模板的 Spring Boot 应用程序。当 Controller 由 WebConfigurerAdapter 的子类管理时,我
我可以同时使用以下配置吗? 和 @Configuration @EnableWebMvc public class ResourceMappingsAdapter extends WebMvcCon
我想将两个配置合并为一个配置。这是它们目前的样子: WebMvcConfigurerAdapter @Configuration @EnableWebMvc @Import(...) public c
我有一个用于 web 的 Spring Boot hello world 和一些配置混淆: Spring 版本:1.2.6.RELEASE 我的项目结构: 我需要提供一些静态内容,所以我决定在一些自定
我是一名优秀的程序员,十分优秀!