我正在尝试使用springboot访问数据库,但是spring应用程序在下面抛出了一个异常。
创建名为“welcome controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beancreationexception:无法自动连接字段:private org.springframework.jdbc.core.jdbctemplate com.mysite.solexiconwebspring.jsp.welcomecontroller.datasource;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项得[org.springframework.jdbc.core.jdbcTemplate]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<!-- Your own application should inherit from spring-boot-starter-parent -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.0.2.RELEASE</version>
</parent>
<artifactId>soLexiconWebSpring</artifactId>
<groupId>com.mysite</groupId>
<packaging>war</packaging>
<name>Spring Boot Web JSP Sample</name>
<description>Spring Boot Web JSP Sample</description>
<version>0.0.1-SNAPSHOT</version>
<url>http://projects.spring.io/spring-boot/</url>
<organization>
<name>Pivotal Software, Inc.</name>
<url>http://www.spring.io</url>
</organization>
<properties>
<main.basedir>${basedir}/../..</main.basedir>
<m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
</plugins>
</build>
</project>
spring.view.prefix=/WEB-INF/jsp/
spring.view.suffix=.jsp
application.message=Hello SuperLucky
#spring.datasource basic database parameter
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/so_lexicon
spring.datasource.username=xxx
spring.datasource.password=xxx
#set data pooling provider to org.apache.tomcat
spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource
#tomcat datasource settings
spring.datasource.tomcat.initial-size=20
spring.datasource.tomcat.max-wait=2000
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=16
spring.datasource.tomcat.min-idle=4
spring.datasource.tomcat.test-on-connect=true
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.test-on-return=true
package com.mysite.soLexiconWebSpring.jsp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class SampleWebJspApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SampleWebJspApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleWebJspApplication.class, args);
}
}
控制器
package com.mysite.soLexiconWebSpring.jsp;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.mysite.soLexiconWebSpring.jsp.beans.FullLexiconRowBean;
import com.mysite.soLexiconWebSpring.jsp.beans.LoginTokenBean;
import com.mysite.soLexiconWebSpring.jsp.dao.LexiconDaoImpl;
import com.mysite.soLexiconWebSpring.jsp.utils.DBUtils;
@Controller
public class WelcomeController {
@Value("${application.message:Hello World}")
private String message = "Hello World";
@Autowired
private JdbcTemplate dataSource;
@Autowired
private DBUtils dbUtils;
@RequestMapping("/soLexiconWebSpring")
public String welcome(Map<String, Object> model) {
model.put("time", new Date());
model.put("message", this.message);
return "welcome";
}
@RequestMapping("/soLexiconWebSpring/login")
public String login(@RequestParam("username") String username, @RequestParam("password") String password, Map<String, Object> model)
{
LoginTokenBean loginToken = new LoginTokenBean();
loginToken.setUsername(username);
loginToken.setPassword(password);
model.put("loginToken", loginToken);
LexiconDaoImpl lexRowDao = new LexiconDaoImpl(dataSource);
List<FullLexiconRowBean> result = lexRowDao.getLexiconRow(1, 5);
if(result != null) model.put("result", result);
else model.put("result", dbUtils.getLastException().toString());
dbUtils.setLastException(new Exception("A B C"));
model.put("dbUtils", dbUtils);
return "lexicon";
}
}
感谢@mrkeMelPanian,我将我的项目更新到SpringBoot2.0.4(经过一番努力),它终于起作用了。所以它可能是1.0.2的bug或其他什么东西。多谢了。
我尝试运行这个gradle任务(通过gradlew) 它使用cucmber jvm 并收到此错误 当我从cmd中的同一路径运行同一行时: 更新1: 这个cmd在shell控制台中工作: ./构建/发行版/WebLarge测试/bin/WebLargeTests-f html:构建/报告/cucumber/-f json:构建/报告/cucumber/report.json--胶水com.waze.
在两台不同的笔记本电脑上使用maven构建相同的项目。一个是运行良好,一个是显示错误。 状态:两个系统的配置相同。 使用的命令:mvn clean install-DskipTests=true 错误: 我什至尝试删除所有内容,例如再次创建. m2文件夹。
问题内容: 我的程序使用该类(系统偏好设置,而不是用户)将加密的产品密钥数据保存到计算机。问题是,在Windows和Linux上(尚未在OSX上进行测试,但可能是相同的),如果我不使用具有管理员权限的程序运行该程序,则在尝试读取或读取该程序时,它将发出异常或警告。保存数据。 显然,要求用户以“管理员”权限运行程序是不切实际的。理想情况下,我希望操作系统请求用户许可。 这很愚蠢,并且消除了的一半目的
问题内容: 当我使用getFromLocationName调用时,我得到一个IOException,描述为“ grpc failed”。 运行的代码 错误的控制台输出: Android SDK版本(API级别):25 Android Studio插件是最新的。 提前致谢! 编辑: 问题现在似乎已经解决,这是我的解决方案。 问题答案: 更新: 该问题现在似乎已解决。我不确定问题是否就此解决了,因此,
我写了一个方便的屏幕键盘模块,当我在电脑上编写打算以平板模式运行的程序时,我可以导入和使用它。因为我想在未来的许多程序中导入和使用这个实用程序,我想存储当前鼠标位置和在模块开始时鼠标可见性状态,然后在模块退出时恢复那些条件。mouse.get_pos()命令工作正常,但是.mouse.get_visible()命令失败,返回错误消息:AtiniteError:模块'pygame.mouse'没有属
我正在尝试构建我的Android应用程序与Gradle在控制台。但关于任务“:app:TransformClasseSandResourcesWithProGuardForRelease”的获取以下错误: ./gradlew构建--堆栈跟踪 这是我收到的例外情况:
“:App:TransformClassesWithDexForDebug”。>com.android.build.transform.api.transformException:当我在studio项目中添加Facebook最新SDK时 Android Studio TransformException:错误:任务“:app:TransformClassesWithDexForDebug”执行失