java man调用spring_java – Spring-boot:需要一个名为’entityMan...

我正在使用JPA开发Spring Boot应用程序并遇到此错误.我不确定我是使用正确的注释还是缺少依赖项.任何帮助将不胜感激.

这是错误消息

1:05:28 AM: Executing external task 'bootRun'...

:compileJava

:processResources UP-TO-DATE

:classes

:findMainClass

:bootRun

01:05:35.198 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []

01:05:35.201 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]

01:05:35.201 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/Users/zahid/IdeaProjects/giflib/build/classes/main/, file:/C:/Users/zahid/IdeaProjects/giflib/build/resources/main/]

. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v1.5.3.RELEASE)

2018-01-24 01:05:35.539 INFO 14840 --- [ restartedMain] com.sweng.giflib.Application : Starting Application on DESKTOP-EKFI3C8 with PID 14840 (C:\Users\zahid\IdeaProjects\giflib\build\classes\main started by zahid in C:\Users\zahid\IdeaProjects\giflib)

2018-01-24 01:05:35.540 INFO 14840 --- [ restartedMain] com.sweng.giflib.Application : No active profile set, falling back to default profiles: default

2018-01-24 01:05:35.828 INFO 14840 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@396ad740: startup date [Wed Jan 24 01:05:35 CST 2018]; root of context hierarchy

2018-01-24 01:05:37.685 INFO 14840 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)

2018-01-24 01:05:37.697 INFO 14840 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service Tomcat

2018-01-24 01:05:37.699 INFO 14840 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.14

2018-01-24 01:05:37.800 INFO 14840 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext

2018-01-24 01:05:37.801 INFO 14840 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1976 ms

2018-01-24 01:05:37.991 INFO 14840 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]

2018-01-24 01:05:37.992 INFO 14840 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

2018-01-24 01:05:37.992 INFO 14840 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]

2018-01-24 01:05:37.992 INFO 14840 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]

2018-01-24 01:05:37.993 INFO 14840 --- [ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]

2018-01-24 01:05:37.994 INFO 14840 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]

2018-01-24 01:05:38.291 WARN 14840 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Cannot create inner bean '(inner bean)#64397422' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#64397422': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' available

2018-01-24 01:05:38.294 INFO 14840 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service Tomcat

2018-01-24 01:05:38.321 INFO 14840 --- [ restartedMain] utoConfigurationReportLoggingInitializer :

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.

2018-01-24 01:05:38.444 ERROR 14840 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :

***************************

APPLICATION FAILED TO START

***************************

Description:

Field userRepository in com.sweng.giflib.service.UserServiceImpl required a bean named 'entityManagerFactory' that could not be found.

Action:

Consider defining a bean named 'entityManagerFactory' in your configuration.

BUILD SUCCESSFUL

Total time: 9.681 secs

1:05:38 AM: External task execution finished 'bootRun'.

的build.gradle

buildscript {

ext {

springBootVersion = '1.5.3.RELEASE'

}

repositories {

mavenCentral()

}

dependencies {

classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")

}

}

group 'com.sweng'

version '1.0-SNAPSHOT'

apply plugin: 'java'

apply plugin: 'idea'

apply plugin: 'org.springframework.boot'

apply plugin: 'war'

repositories {

mavenCentral()

}

springBoot {

mainClass = "com.sweng.giflib.Application"

}

dependencies {

compile "org.springframework.boot:spring-boot-starter-data-jpa:$springBootVersion"

compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"

compile "org.springframework.boot:spring-boot-starter-thymeleaf:$springBootVersion"

compile "org.springframework.boot:spring-boot-devtools:$springBootVersion"

compile "mysql:mysql-connector-java"

compile "org.springframework.boot:spring-boot-starter-security:$springBootVersion"

compile "org.thymeleaf.extras:thymeleaf-extras-springsecurity4:2.1.2.RELEASE"

providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

}

application.properties

spring.datasource.url== jdbc:mysql://localhost:3306/giflib

spring.db.driver= com.mysql.jdbc.Driver

spring.datasource.username = su

spring.datasource.password =

spring.jpa.show-sql = true

#spring.jpa.hibernate.ddl-auto = update

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

spring.jpa.hibernate.naming.strategy = org.hibernate.cfg.ImprovedNamingStrategy

Application.java

package com.sweng.giflib;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.support.SpringBootServletInitializer;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@ComponentScan

@Configuration

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

@EnableJpaRepositories(basePackages = "com.sweng.giflib.repository")

@SpringBootApplication(scanBasePackages= "com.sweng.giflib")

public class Application extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(Application.class);

}

public static void main(String[] args) throws Exception {

SpringApplication.run(Application.class, args);

}

}

UserService.java

package com.sweng.giflib.service;

import com.sweng.giflib.model.User;

import org.springframework.security.core.userdetails.UserDetailsService;

public interface UserService extends UserDetailsService {

User findByUsername(String username);

}

UserServiceImpl.java

package com.sweng.giflib.service;

import com.sweng.giflib.repository.UserRepository;

import com.sweng.giflib.model.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.security.core.userdetails.UserDetails;

import org.springframework.security.core.userdetails.UsernameNotFoundException;

import org.springframework.stereotype.Service;

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserRepository userRepository;

@Override

public User findByUsername(String username)

{

return userRepository.findByusername(username);

}

@Override

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

// Load user from the database (throw exception if not found)

User user = userRepository.findByusername(username);

if(user == null) {

throw new UsernameNotFoundException("User not found");

}

// Return user object

return user;

}

}

UserRepository.java

package com.sweng.giflib.repository;

import com.sweng.giflib.model.User;

import org.springframework.data.repository.CrudRepository;

import org.springframework.stereotype.Repository;

@Repository

public interface UserRepository extends CrudRepository{

User findByusername(String name);

}

User.java

package com.sweng.giflib.model;

import org.springframework.security.core.GrantedAuthority;

import org.springframework.security.core.authority.SimpleGrantedAuthority;

import org.springframework.security.core.userdetails.UserDetails;

import javax.persistence.*;

import javax.validation.constraints.Size;

import java.util.ArrayList;

import java.util.Collection;

import java.util.List;

@Entity

public class User implements UserDetails {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@Column(unique = true)

@Size(min = 8, max = 20)

private String username;

@Column(length = 100)

private String password;

@Column(nullable = false)

private boolean enabled;

@OneToOne

@JoinColumn(name = "role_id")

private Role role;

@Override

public Collection extends GrantedAuthority> getAuthorities() {

List authorities = new ArrayList<>();

authorities.add(new SimpleGrantedAuthority(role.getName()));

return authorities;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

@Override

public String getPassword() {

return password;

}

@Override

public String getUsername() {

return username;

}

@Override

public boolean isAccountNonExpired() {

return true;

}

@Override

public boolean isAccountNonLocked() {

return true;

}

@Override

public boolean isCredentialsNonExpired() {

return true;

}

@Override

public boolean isEnabled() {

return enabled;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值