Spring 创建Bob命名时引导错误 'dataSource', 在课堂上定义 path resource
我有 Spring Boot Web应用程序。 它集中在方法周围 RESTful. 整个配置似乎到位,但出于某种原因 MainController 无法处理请求。 它导致错误 404. 如何解决它?
应用
ParserController
UPDATE
看起来 MySQL 无法初始化 Spring....
更新 2
application.properties
UPDATE4
似乎控制器 lite 不要回答
放。 为什么不?
PS. 它发生在我发射生命周期时 Maven
.
在模式下工作时 degub 在 IntelliJ 没有显示错误。
UPDATE5
我也用这个 DAO, 如教科书中所述....
http://blog.netgloo.com/2014/1 ... nate/
/
UPDATE6
我真的更改了应用程序属性。 我尝试了每个组合,但它拒绝工作。 ;/
Maven 出口
:
</record,>
@Controller
public class MainController {
@Autowired
ParserService parserService;
@RequestMapping/value="/", method= RequestMethod.GET/
public @ResponseBody String displayStartPage//{
return "{hello}";
}
}
应用
@Configuration
@ComponentScan/basePackages = ""/
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer{
public static void main/final String[] args/ {
SpringApplication.run/Application.class, args/;
}
@Override
protected final SpringApplicationBuilder configure/final SpringApplicationBuilder application/ {
return application.sources/Application.class/;
}
}
ParserController
@RestController
public class ParserController {
@Autowired
private ParserService parserService;
@Autowired
private RecordDao recordDao;
private static final Logger LOG = Logger.getLogger/ParserController.class/;
@RequestMapping/value="/upload", method= RequestMethod.POST/
public @ResponseBody String fileUploadPage/
}
}
UPDATE
看起来 MySQL 无法初始化 Spring....
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Instantiation of bean failed;
nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.sql.DataSource org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource//] threw exception;
nested exception is org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
更新 2
application.properties
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/logparser
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
# Hibernate
hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql: true
hibernate.hbm2ddl.auto: update
entitymanager.packagesToScan: /
UPDATE4
似乎控制器 lite 不要回答
@RequestMapping
放。 为什么不?
PS. 它发生在我发射生命周期时 Maven
test
.
在模式下工作时 degub 在 IntelliJ 没有显示错误。
UPDATE5
我也用这个 DAO, 如教科书中所述....
public interface RecordDao extends CrudRepository<record, long=""> {
}
http://blog.netgloo.com/2014/1 ... nate/
/
UPDATE6
我真的更改了应用程序属性。 我尝试了每个组合,但它拒绝工作。 ;/
Maven 出口
:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running IntegrationTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.365 sec <<< FAILURE! - in IntegrationTest
saveParsedRecordsToDatabase/IntegrationTest/ Time elapsed: 2.01 sec <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext/CacheAwareContextLoaderDelegate.java:99/
at org.springframework.test.context.DefaultTestContext.getApplicationContext/DefaultTestContext.java:101/
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies/DependencyInjectionTestExecutionListener.java:109/
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance/DependencyInjectionTestExecutionListener.java:75/
at org.springframework.test.context.TestContextManager.prepareTestInstance/TestContextManager.java:331/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest/SpringJUnit4ClassRunner.java:213/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall/SpringJUnit4ClassRunner.java:290/
at org.junit.internal.runners.model.ReflectiveCallable.run/ReflectiveCallable.java:12/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock/SpringJUnit4ClassRunner.java:292/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild/SpringJUnit4ClassRunner.java:233/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild/SpringJUnit4ClassRunner.java:87/
at org.junit.runners.ParentRunner$3.run/ParentRunner.java:238/
at org.junit.runners.ParentRunner$1.schedule/ParentRunner.java:63/
at org.junit.runners.ParentRunner.runChildren/ParentRunner.java:236/
at org.junit.runners.ParentRunner.access$000/ParentRunner.java:53/
at org.junit.runners.ParentRunner$2.evaluate/ParentRunner.java:229/
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate/RunBeforeTestClassCallbacks.java:61/
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate/RunAfterTestClassCallbacks.java:71/
at org.junit.runners.ParentRunner.run/ParentRunner.java:309/
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run/SpringJUnit4ClassRunner.java:176/
at org.apache.maven.surefire.junit4.JUnit4Provider.execute/JUnit4Provider.java:264/
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet/JUnit4Provider.java:153/
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke/JUnit4Provider.java:124/
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader/ForkedBooter.java:200/
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess/ForkedBooter.java:153/
at org.apache.maven.surefire.booter.ForkedBooter.main/ForkedBooter.java:103/
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.sql.DataSource org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource//] threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
</record,>
没有找到相关结果
已邀请:
18 个回复
卫东
赞同来自:
如果您不需要数据源,只需从自动设置过程中删除它:
窦买办
赞同来自:
创建/在你现有的
添加以下内容
确保为每个属性添加值。
石油百科
赞同来自:
二哥
赞同来自:
所以确保依赖项不会缺失 pom.xml 并检查他们与版本的兼容性。
帅驴
赞同来自:
无用,他们必须是属性
. 更不用说你试图覆盖已经使用属性安装的事实
. /要解释每个属性,我强烈建议阅读
http://docs.spring.io/spring-b ... -data
Spring Boot .
此外,扫描袋基于类的基本包自动确定。
. 如果要指定其他内容,请使用注释
. 此外,顶级包本身的指示不是相当合理的,因为它将一直扫描到类,这将严重影响性能。
窦买办
赞同来自:
添加瘾
将文件夹资源添加到测试源添加文件 bootstrap.yml
并提供内容。
这将允许您配置数据源。
小明明
赞同来自:
到
八刀丁二
赞同来自:
spring.datasource.url: jdbc:mysql://google/?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=*** * &password=
****
郭文康
赞同来自:
执行
在 build.gradle
或从测试中更改域
执行
, 如果您正在使用 Maven
郭文康
赞同来自:
我想他们希望你实现 AbstractRoutingDataSource, 然后,此自动配置只需工作,因为不需要限定符,您只需有一个数据源,允许您的鲍勃允许适当的源 DataSource 如所须。 然后你根本不需要注释。 @Primary 或者 @Qualifier, 因为你只有一个 DataSource.
无论如何,我的决定工作了,因为我的豆子问道 DataSource 通过限定符和材料 JPA auto config 因为他有一个主要的 DataSource. 我不推荐这一点 "right" 做事的方式,但在我的情况下它已经解决了这个问题并且没有任何明显的方式阻碍我的申请的行为。 让我们希望有一天能够实现 AbstractRoutingDataSource 并重构需要混凝土的所有豆类 DataSource, 然后,也许它将是一个更准确的解决方案。
八刀丁二
赞同来自:
我更改了属性的类配置包的名称,它开始工作。
风见雨下
赞同来自:
# Hibernate
#spring.jpa.hibernate.ddl-auto=update
这个对我有用 ....
奔跑吧少年
赞同来自:
正如我所知,我向父母添加了这个瘾 pom 两个模块
这造成了这一点 spring 初始化 jdbc 依赖于项目 B 还。 所以,我用庞康搬到了项目,一切都很好。
我希望这将有助于某人
二哥
赞同来自:
如果是这样,那么你有 application.properties, 存储在此内容中 jar ?
如果没有,请尝试弄清楚为什么 :
自动包装在 jar, 文件可以在: src/main/resources/application.properties
插入 maven 在 pom.xml 您也可以配置
冰洋
赞同来自:
加入它 VM 选项B. Tomcat
卫东
赞同来自:
数据源 bean 在测试用例中。
这可能是由于某种原因引起的:
无数据源,您需要创建数据源,数据源 h2 在记忆中或其他东西,或者你可以选择一种方式
.
例如,您有自己的数据源 MySQL, 但他仍然不起作用。 它是由班级造成的
, 他将为您选择一个数据源,这可能会导致歧义。
解决方案:添加
, 避免替换默认数据源。
裸奔
赞同来自:
到
有关更多信息,请参阅发行说明:
https://github.com/spring-proj ... Notes
冰洋
赞同来自: