我试图开发一个具有Spring JPA和Hibernate实现的示例Spring Boot应用程序。虽然我设法让我的安装完成,我得到以下错误,而运行的应用程序。
创建名为“org”的bean时出错。springframework。靴子自动配置。奥姆。jpa。HibernateJpacConfiguration'
我怀疑这是某种基于配置的错误,但我无法确定错误的来源。
我看到过一些有这个错误的帖子,并尝试过这些解决方案。但是这些并没有帮助我解决这个错误。
这是我的应用程序的设置。
xml
<?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>
<groupId>com.shandesh</groupId>
<artifactId>training</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
应用yml文件:-
spring:
profiles: dev
datasource:
url: jdbc:oracle:thin:@//localhost:1521/orcl
driverClassName: oracle.jdbc.driver.OracleDriver
username: ****
password: ****
jpa:
show_sql: true
generate-ddl: false
hibernate:
ddl-auto: none
properties:
hibernate.dialect: org.hibernate.dialect.OracleDialect
实体类:-
package com.shandesh.dao;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.sql.Timestamp;
@Getter
@Setter
@Entity
@Table(name = "APPUSER")
public class AppUserDTO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "USER_ID")
Long userId;
@Column(name = "USER_NAME")
String userName;
@Column(name = "USER_FIRST_NAME")
String userFirstName;
@Column(name = "USER_LAST_NAME")
String userLastName;
@Column(name = "LAST_UPDATED_BY")
String lastUpdatedBy;
@Column(name = "LAST_UPDATED_DATE")
Timestamp lastUpdatedDate;
}
存储库类:-
package com.shandesh.repository;
import com.shandesh.dao.AppUserDTO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Repository;
import javax.transaction.Transactional;
import java.util.List;
@Repository
public interface AppUserRepository extends JpaRepository<AppUserDTO, Integer> {
List<AppUserDTO> findByUserName(String userName);
List<AppUserDTO> findByUserId(Integer userId);
List<AppUserDTO> findAll();
@Modifying
Long deleteByUserName(String userName);
@Modifying
Long deleteByUserid(Integer userId);
}
服务类别:-
package com.shandesh.service;
import com.shandesh.dao.AppUserDTO;
import com.shandesh.repository.AppUserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AppUserService {
@Autowired
private AppUserRepository appUserRepository;
public List<AppUserDTO> getAllAppUsers() {
return appUserRepository.findAll();
}
}
控制器类:-
package com.shandesh.controller;
import com.shandesh.dao.AppUserDTO;
import com.shandesh.service.AppUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@EnableAutoConfiguration //(exclude={DataSourceAutoConfiguration.class})
public class UserController {
@Autowired
private AppUserService appUserService;
@RequestMapping(value = "/getAllUsers", produces = MediaType.APPLICATION_JSON_VALUE)
public List<AppUserDTO> getAllUsers() { return appUserService.getAllAppUsers(); }
}
通过IntelliJ控制台运行应用程序时进行堆栈跟踪。
. ____ _____ /\ / ' __ __ __ __ _ \ \ \ \ ( ( )<--8/> | ' _ | '| | ' / ` | \ \ \ \ \/ )| |)| | | | | || (| | ) ) ) ) ' |____| .|| ||| |__, | / / // =========| _ |==============|___/=/// _/:: Spring启动:: (v2.1.0.发布)
2019-07-11 10:12:12.575信息5872---[main]com。山德斯。应用:使用PID 5872在SKD-PC上启动应用程序(G:\Shantanu\Learning\Technology\Projects\training\target\classes由Shantanu在G:\Shantanu\Learning\Technology\Projects\training中启动)2019-07-11 10:12:12.582 INFO 5872---[main]com。山德斯。应用:未设置活动配置文件,返回默认配置文件:默认2019-07-11 10:12:13.827信息5872---[main]。s、 d.r.c.RepositoryConfigurationDelegate:在默认模式下引导Spring数据存储库。2019-07-11 10:12:13.925信息5872---[main]。s、 d.r.c.RepositoryConfigurationDelegate:在86毫秒内完成Spring数据存储库扫描。找到1个存储库接口。2019-07-11 10:12:14.778信息5872---[main]trationlegate$BeanPostProcessorChecker:Bean'org。springframework。交易注释。[org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$bf78f5b2]类型的“ProxyTransactionManagementConfiguration”不适合由所有BeanPostProcessor处理(例如:不适合自动代理)2019-07-11 10:12:15.211信息5872---[main]o.s.b.w.embedded。公猫TomcatWebServer:Tomcat已使用端口初始化:8080(http)2019-07-11 10:12:15.230信息5872---[main]o.apache。卡塔琳娜。果心标准服务:开始服务[Tomcat]2019-07-11 10:12:15.231信息5872---[main]组织。阿帕奇。卡塔琳娜。果心标准引擎:启动Servlet引擎:ApacheTomcat/9.0。12 2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:使用APR版本[1.6.5]加载了基于APR的ApacheTomcat本机库[1.2.21]。2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:APR功能:IPv6[true]、sendfile[true]、接受筛选器[false]、随机[true]。2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:APR/OpenSSL配置:UseApConnector[false],useOpenSSL[true]2019-07-11 10:12:15.242信息5872---[main]o.a.catalina。果心AprLifecycleListener:OpenSSL已成功初始化[OpenSSL 1.1.1a 2018年11月20日]2019-07-11 10:12:15.396信息5872---[main]o.a.c.c.c。[雄猫]。[本地主机]。[/]:初始化Spring嵌入式WebApplicationContext 2019-07-11 10:12:15.396信息5872---[main]o.s.web.context。ContextLoader:根WebApplicationContext:初始化在2735毫秒2019-07-11 10:12:15.434信息5872---[main]o.s.b.w.servlet中完成。ServletRegistrationBean:ServletDispatchersServlet映射到[/]2019-07-11 10:12:15.439信息5872---[main]o.s.b.w.Servlet。FilterRegistrationBean:将筛选器:“characterEncodingFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“hiddenHttpMethodFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“formContentFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“requestContextFilter”映射到:[/]2019-07-11 10:12:15.481警告5872---[main]ConfigServletWebServerApplicationContext:上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。springframework。靴子自动配置。奥姆。jpa。HibernateJpacConfiguration”:通过构造函数参数0表示的未满足的依赖项;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建在类路径资源[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]中定义的名为“dataSource”的bean时出错:通过工厂方法实例化bean失败;嵌套的异常是org。html" target="_blank">springframework。豆。BeanInstationException:未能实例化[com.zaxxer.hikari.HikariDataSource]:工厂方法“dataSource”引发异常;嵌套的异常是org。springframework。靴子自动配置。jdbc。DataSourceProperties$DataSourceBeanCreationException:未能确定合适的驱动程序类别2019-07-11 10:12:15.484信息5872---[main]o.apache。卡塔琳娜。果心标准服务:停止服务[Tomcat]2019-07-11 10:12:15.523信息5872---[main]条件评估报告日志监听器:
启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2019-07-11 10:12:15.531错误5872---[main]o.s.b.d.记录故障分析报告员:
应用程序无法启动
说明:
配置DataSource失败:未指定url属性,无法配置嵌入式数据源。
原因:无法确定合适的驱动程序类别
行动:
考虑下面的内容:如果你想要一个嵌入式数据库(H2,HSQL或DeBy),请把它放在类路径上。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有激活的配置文件)。
退出代码1的过程结束
我希望这个应用程序能够成功运行,并且能够看到所有用户条目的JSON输出https://localhost:8080/getAllUsers.
改变
findAppUserDTOSByUserName(字符串用户名)
,findAppUserDTOSByUserId(整数userId)
到
findByUserName(String userName)
,findByUserId(intger userId);
Spring Data存储库架构体系中内置的查询生成器机制对于构建对存储库实体的约束查询非常有用。该机制剥离前缀
查找...by
,read...通过
,查询...通过
,计数...通过
,和获取...by
from the方法并开始解析其余部分。引入子句可以包含进一步的表达式,例如用于在要创建的查询上设置不同标志的区分。
另外,请注意,您不需要将
@restebody
与@RestController
一起使用,因为默认情况下它处于活动状态。将getAllUsers()
的返回类型从对象更改为列表
这是我的调度器servlet。xml 这是我的安全。xml 调试之后,我发现了一个错误 严重:加载app:java时出现异常。lang.IllegalState例外:ContainerBase。addChild:start:org。阿帕奇。卡塔琳娜。生命周期例外:组织。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时出错。sprin
我刚开始使用hibernate,不太确定我的应用程序出了什么问题。所以我有两个模块:核心模块和网站模块。 模块核心拥有所有的实体,daos和所有的数据库工作。所有的DAO继承一个AbstractDAO。 模块网站做所有前端的东西,如jsps,mvc控制器...它是一个支持Spring框架的maven模块。 我试图实现第二级缓存使用ehache工厂。 组织。springframework。豆。工厂B
我必须为客户集成Shibboleth SP身份验证,我需要将其与JBoss上的J2EE应用程序(JSF2、EJB3、JPA2)集成为7<我正在使用这个库: spring-security-core-3.2.5和依赖项 spring-security-saml2-core-1.0.0和依赖项 Spring框架4.1.3 目前,有一个bean实现了用于身份验证和授权的JdbcDaoImpl。我已经成功
我在试用spring数据。我有一个非常基本的应用程序。零件:1。主应用程序类 那么我就有了pom.xml https://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 org.springframework.Boot spring-boot-starter-parent 2.1.13.release com.italktocomputer.spring-b