当前位置: 首页 > 知识库问答 >
问题:

@AutoWired beans使用beans后不加载:spring 3.1中的配置文件

岳涵煦
2023-03-14
    <beans profile="dev">
        <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="${jdbc.driverClassName}" />
            <property name="url" value="${jdbc.internal.url}" />
            <property name="username" value="${jdbc.internal.username}" />
        </bean>
   </beans>
<servlet>
    <servlet-name>myapp</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/myapp-servlet.xml</param-value>
    </init-param>
    <init-param>
        <param-name>spring.profiles.active</param-name>
        <param-value>dev</param-value>
    </init-param>
</servlet>
//controller
@Controller 
public class MyController {
  @Autowired
  private MyService myService;
  ....
}

//service implementation
@Service("myservice")
public class MyServiceImpl implements MyService {
  @Autowired
  DBService dbService;
} 

//db service
@Service("dbservice)
public class DBServiceImpl implements DbService {
  @Autowired
  public void setDataSource (Datasource ds) { 
    this.jdbcTemplate = new JdbcTemplate(ds);
  }
}

错误:

创建名为“My Controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.SpringFramework.Beans.Factory.BeanCreationException:无法自动连接字段:private MyService MyController.MyService;嵌套异常为org.SpringFramework.Beans.Factory.BeanCreationException:

嵌套异常为org.springframework.beans.factory.beanCreationException:创建名为“db service”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动连接方法:public void dbserviceimpl.setDataSource(javax.sql.DataSource);嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:未找到依赖项的[javax.sql.datasource]类型的匹配bean:至少需要一个符合此依赖项自动候选条件的bean。依赖项批注:{}在org.springframework.beans.factory.annotation.autowredanNotationbeanpostprocessor.postprocesspropertyvalues(autowredanNotationbeanpostprocessor.java:287)在org.springframework.beans.factor.support.abstractautowirecapablebeanfactor.populateBean(abstractautorecapablebeanfactor.java:1106)在

共有1个答案

颛孙安康
2023-03-14

我猜您是在DispatcherServlet上下文中使用profile,而DataSource可能位于根应用程序上下文中。

请参阅Spring Framework中ApplicationContext.xml和Spring-Servlet.xml之间的区别

更新:尝试使用上下文参数(取自此处):

<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
 类似资料:
  • 我一直在尝试使用Spring3.1的bean定义概要文件和嵌套bean。我希望可以根据活动配置文件定义不同的bean。请考虑以下非常简化的示例,使我的Spring上下文包含如下内容 我得到以下错误: 线程“main”org.springframework.beans.factory.BeanCreationException中出现异常:创建类路径资源[applicationcontext.xml]

  • 我在web应用程序中工作。我正在使用spring分析加载基于环境的属性。下面是样品 在web.xml中,我们可以给出配置文件 现在,我的查询是针对我需要创建一个单独的Java类的每个环境。 问题:是否可能只有一个类,比如提供配置文件名称作为某个绑定参数,比如。 同时,让我知道是否有其他更好的选择,以实现同样的。

  • 问题内容: 我已经成功编译了php和apache,没有为php配置文件指定目录。我想添加梨功能,但似乎没有php.ini的任何地方。 在我的phpinfo中,它说 配置文件(php.ini)路径/ usr / local / apache2 / php / lib 加载的配置文件(无) 扫描此目录以查找其他.ini文件(无) 已解析的其他.ini文件(无) 我去了/ usr / local / a

  • 本文向大家介绍ASP.NET Core中修改配置文件后自动加载新配置的方法详解,包括了ASP.NET Core中修改配置文件后自动加载新配置的方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 在 ASP.NET Core 默认的应用程序模板中, 配置文件的处理如下面的代码所示: appsettings.json 和 appsettings.{env.EnvironmentName}.json

  • 我有一个库,这是一个Spring Boot项目。该库有一个library.yml文件,其中包含用于其配置的dev和prod道具: 但是当我检查env的值时,我得到的是“prod”。为什么? 我如何告诉Spring Boot使用library.yml中的活动(例如dev)配置文件道具? 注意:我更喜欢使用。yml而不是。properties文件。