Spring Boot测试:没有定义类型为[javax.persistence.EntityManagerFactory]的合格bean

迈克尔·考克森

我试图在春季启动下设置测试上下文,所以我定义了一个TestApplicationContext,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {MvcConfig.class,SecurityConfig.class})
@WebAppConfiguration
@EnableAutoConfiguration
@PropertySource({ "classpath:persistence.properties" })
@ComponentScan
public class TestApplicationContext {

    @Autowired
    private Environment env;

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.setPort(9000);
        factory.setSessionTimeout(10, TimeUnit.MINUTES);
        //factory.addErrorPages(new ErrorPage(HttpStatus.404, "/notfound.html"));
        return factory;
    }

    @Bean
    public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
    JpaTransactionManager transactionManager = new JpaTransactionManager();
    transactionManager.setEntityManagerFactory(emf);
    return transactionManager;
    }


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
       LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
       em.setDataSource(hsqlDataSource());
       em.setPackagesToScan(new String[] { "com.touchcorp.touchppoint.model" });

       JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
       em.setJpaVendorAdapter(vendorAdapter);
       em.setJpaProperties(buildHibernateProperties());

       return em;
    }

    @Bean
    public DataSource hsqlDataSource()
    {
        BasicDataSource basicDataSource = new BasicDataSource();
        basicDataSource.setDriverClassName(org.hsqldb.jdbcDriver.class.getName());
        basicDataSource.setUsername("sa");
        basicDataSource.setPassword("");
        basicDataSource.setUrl("jdbc:hsqldb:mem:mydb");
        return basicDataSource;
    }

    /**
     *
     * Loading all the hibernate properties from a properties file
     */
    protected Properties buildHibernateProperties()
    {
        Properties hibernateProperties = new Properties();

        hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
        hibernateProperties.setProperty("hibernate.show_sql", "true");
        hibernateProperties.setProperty("hibernate.use_sql_comments", "true");
        hibernateProperties.setProperty("hibernate.format_sql", "true");
        hibernateProperties.setProperty("hibernate.hbm2ddl.auto", "create-drop");

        hibernateProperties.setProperty("hibernate.generate_statistics", env.getProperty("hibernate.generate_statistics"));

        hibernateProperties.setProperty("javax.persistence.validation.mode", env.getProperty("javax.persistence.validation.mode"));

        //Audit History flags
        hibernateProperties.setProperty("org.hibernate.envers.store_data_at_delete", env.getProperty("org.hibernate.envers.store_data_at_delete"));
        hibernateProperties.setProperty("org.hibernate.envers.global_with_modified_flag", env.getProperty("org.hibernate.envers.global_with_modified_flag"));

        return hibernateProperties;
    }

}

它试图建立自己的持久性上下文,因此我可以运行如下测试:

@RunWith(SpringJUnit4ClassRunner.class)
public class ApplicationIntegrationTest extends TestApplicationContext {

    MockMvc mockMvc;

    @Autowired
    private WebApplicationContext wac;

    @Resource(name="springSecurityFilterChain")
    private FilterChainProxy springSecurityFilterChain;

    @Before
    public void setup() {
        // using the web application to initiate the mock
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilter(springSecurityFilterChain).build();


    }

    @Test
    public void thatViewBootstrapUsesHttpNotFound() throws Exception {

        MvcResult result = mockMvc.perform(post("/login")
                .param("username", "user").param("password", "password")).andReturn();
        Cookie c = result.getResponse().getCookie("my-cookie");
        assertThat(c.getValue().length(), greaterThan(10));

        // No cookie; 401 Unauthorized
        mockMvc.perform(get("/")).andExpect(status().isUnauthorized());

        // With cookie; 200 OK
        mockMvc.perform(get("/").cookie(c)).andExpect(status().isOk());

        // Logout, and ensure we're told to wipe the cookie
        result = mockMvc.perform(delete("/session")).andReturn();
        c = result.getResponse().getCookie("my-cookie");
        assertThat(c.getValue().length(), is(0));
    }

}

现在,所有这些都由休眠的HSQLDB userDao提供支持,该设备由DeviceUsernamePasswordAuthenticationProvider调用

@Service(value="customAuthenticationProvider")
public class DeviceUsernamePasswordAuthenticationProvider implements AuthenticationProvider {
    private static final Logger LOG = LoggerFactory.getLogger(DeviceUsernamePasswordAuthenticationProvider.class);

    @Autowired
    private CustomUserDetailsService customUserDetailsService;

    @Autowired
    private DeviceDetailsService deviceDetailsService;

    @Override
    public boolean supports(Class<? extends Object> authentication) {
        return authentication.equals(DeviceUsernamePasswordAuthenticationToken.class);
    }

    /**
     * Implements authentication with a number of scenarios in mind:
     * <ul>
     *     <li>A non-browser client is making a request without device details - FAIL</li>
     *     <li>A non-browser client is making a request with device details in the request  - CHECK
     *     if successful a TOKEN is set</li>
     *     <li>A non-browser client is making a request with device TOKEN  - CHECK</li>
     *     <li>A browser client is making a request with device TOKEN or device details with user and password  - CHECK
     *     if successful JSESSIONID is set</li>
     * </ul>
     * @param authentication
     * @return
     * @throws AuthenticationException
     */
    @Override
    public Authentication authenticate(Authentication authentication) throws AuthenticationException {

        LOG.info("Authenticating device and user - assigning authorities...");
        DeviceUsernamePasswordAuthenticationToken auth = (DeviceUsernamePasswordAuthenticationToken) authentication;
        String name = auth.getName();
        String password = auth.getCredentials().toString();

        boolean isDeviceRequest = (name == null && password == null);
        LOG.debug("name is {}, password is {}", name, password);

        // (a) nothing, (b) hasToken|<token encoding>, or (c) getToken|<base64 encoded device request>
        String deviceToken = auth.getDeviceAuthorisation();

        if (deviceToken == null) {
            // very bad - set as anonymous
            LOG.error("missing.device.token");
            throw new BadCredentialsException("missing.device.token");
        }

        LOG.debug("deviceToken is {}", deviceToken);
        String[] deviceInformation = StringUtils.split(deviceToken,"|");


        DeviceDetails device = null;

        if(deviceInformation[0].equals("getToken")) {
            LOG.debug("getToken");
            // we expect the array to be of length 3, if not, the request is malformed
            if (deviceInformation.length < 3) {
                LOG.error("malformed.device.token");
                throw new BadCredentialsException("malformed.device.token");
            }

            device = deviceDetailsService.loadDeviceByDeviceId(deviceInformation[1]);

            if (device == null) {
                LOG.error("missing.device");
                throw new BadCredentialsException("missing.device");
            } else {
                // otherwise, get the authorities
                auth = new DeviceUsernamePasswordAuthenticationToken(null, null,
                        device.getDeviceId(), device.getAuthorities());

                //also we need to set a new token into the database

                String newToken = Hashing.sha256()
                        .hashString("your input", Charsets.UTF_8)
                        .toString();


                deviceDetailsService.setToken(device.getDeviceId(),newToken);

                // and put it into the response headers
                auth.setDeviceTokenForHeaders(newToken);

            }
        } else if(deviceInformation[0].equals("hasToken")) {
            LOG.debug("hasToken");
            if (deviceInformation.length < 3) {
                LOG.error("malformed.device.token");
                throw new BadCredentialsException("malformed.device.token");
            }

            // check that there is a token and that the token has not expired
            String token = deviceDetailsService.getToken(deviceInformation[1]);

            if (token == null) {
                // we got a token in the request but the token we have no stored token
                LOG.error("mismatched.device.token");
                throw new BadCredentialsException("mismatched.device.token");
            } else if(!token.equals(deviceInformation[2])) {
                // we got a token in the request and its not the same as the token we have stored
                LOG.error("mismatched.device.token");
                throw new BadCredentialsException("mismatched.device.token");
            } else if ( deviceDetailsService.hasTokenExpired(deviceInformation[1])) {
                // we got a token in the request and its not the same as the token we have stored
                LOG.error("expired.device.token");
                throw new BadCredentialsException("expired.device.token");
            } else {
                // token was in the request, correctly formed, and matches out records
                device = deviceDetailsService.loadDeviceByDeviceId(deviceInformation[1]);
                auth = new DeviceUsernamePasswordAuthenticationToken(null, null,
                        device.getDeviceId(), device.getAuthorities());
            }


        } else {
            LOG.error("malformed.device.token");
            throw new BadCredentialsException("malformed.device.token");
        }

        if (!isDeviceRequest) {

            // OK, now we can do the user stuff




            UserDetails user = customUserDetailsService.loadUserByUsername(name);
            auth = new DeviceUsernamePasswordAuthenticationToken(name, password, device.getDeviceId(), device.getAuthorities());
        }

        return auth;
    }

}

它使用CustomUserDetailsS​​ervice像这样:

@Service(value="customUserDetailsService")
@Transactional(readOnly=true)
public class CustomUserDetailsServiceImpl implements CustomUserDetailsService {

    private static final Logger LOG = LoggerFactory.getLogger(CustomUserDetailsServiceImpl.class);

    @Autowired
    private UserDao userDao;



    public UserDetails loadUserByUsername(String login)
            throws UsernameNotFoundException {
        LOG.info("Finding the UserDetails for {}", login);

        com.touchcorp.touchpoint.model.domain.User domainUser = userDao.getUser(login);

        if(domainUser == null) {
            throw new UsernameNotFoundException("The user {} was not found", login);
        }

        boolean enabled = true;
        boolean accountNonExpired = true;
        boolean credentialsNonExpired = true;
        boolean accountNonLocked = true;

        return new User(
                domainUser.getLogin(),
                domainUser.getPassword(),
                enabled,
                accountNonExpired,
                credentialsNonExpired,
                accountNonLocked,
                getAuthorities(domainUser.getRoles())
        );
    }


    public Collection<? extends GrantedAuthority> getAuthorities(List<Role> roles) {
        List<GrantedAuthority> authorities = new ArrayList<>();
        LOG.debug("List of Authorities...");
        for (Role role : roles) {

            StringBuilder bob = new StringBuilder("ROLE_");
            bob.append(role.getRole().toUpperCase());
            LOG.debug("authority {}",bob.toString());
            authorities.add(new SimpleGrantedAuthority(bob.toString()));
        }

        return authorities;
    }

}

哪个在userDao上调用

@Repository("userDao")
public class UserDaoImpl implements UserDao {
    private static final Logger LOG = LoggerFactory.getLogger(UserDaoImpl.class);

    @PersistenceContext
    private EntityManager entityManager;

    public User getUser(String login) {
        LOG.debug("Looking for a user with login: {}", login);

        List<User> list = entityManager.createQuery(
                                "SELECT u FROM User u WHERE u.login = :login")
                        .setParameter("login", login).getResultList( );
                return (list.isEmpty( )?null:list.get( 0 ));
    }

}

问题在于容器不会启动,而是抛出邪恶的BeanCreationException。

这是逐步跟踪各个层的堆栈跟踪

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customAuthenticationProvider': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.service.CustomUserDetailsService com.touchcorp.touchpoint.security.DeviceUsernamePasswordAuthenticationProvider.customUserDetailsService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customUserDetailsService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.model.dao.UserDao com.touchcorp.touchpoint.service.CustomUserDetailsServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1017)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:858)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
    ... 45 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.service.CustomUserDetailsService com.touchcorp.touchpoint.security.DeviceUsernamePasswordAuthenticationProvider.customUserDetailsService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customUserDetailsService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.model.dao.UserDao com.touchcorp.touchpoint.service.CustomUserDetailsServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
    ... 56 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customUserDetailsService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.model.dao.UserDao com.touchcorp.touchpoint.service.CustomUserDetailsServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1017)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:858)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
    ... 58 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.touchcorp.touchpoint.model.dao.UserDao com.touchcorp.touchpoint.service.CustomUserDetailsServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
    ... 69 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:356)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1017)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:858)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
    ... 71 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:559)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:515)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:682)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:655)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:155)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:353)
    ... 82 more

有人知道我在这里想念的吗?

然后马库斯
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {MvcConfig.class,SecurityConfig.class})
@WebAppConfiguration

这三行没有任何意义。而是应该用注释,@Configuration这3行应该在您的测试类上。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestApplicationContext.class)
@WebAppConfiguration
public class ApplicationIntegrationTest { … }

测试部分的弹簧引导参考指南中也对此进行了说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:带有Spring控制器的javax.persistence.JoinColumn.foreignKey()Ljavax / persistence / ForeignKey

来自分类Dev

Spring JPA(Hibernate)没有类型为javax.persistence.EntityManagerFactory的合格Bean

来自分类Dev

没有类型为EntityManagerFactory的合格Bean

来自分类Dev

没有类型为[javax.persistence.EntityManager]的合格bean

来自分类Dev

没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望单个bean,但找到0:

来自分类Dev

注入持久性依赖项失败;没有定义类型为[javax.persistence.EntityManagerFactory]的合格bean

来自分类Dev

Spring Boot:javax.persistence.TransactionRequiredException:执行更新/删除查询

来自分类Dev

Spring数据存储库-没有合格的bean注入

来自分类Dev

GAE上的Spring Boot Rest App引发异常,无法将其强制转换为javax.persistence.EntityManagerFactory”

来自分类Dev

没有定义类型为[javax.sql.DataSource]的合格bean

来自分类Dev

Spring Boot中的JPA存储库“没有类型的合格Bean”

来自分类Dev

Spring Boot JPA-没有合格的bean类型

来自分类Dev

Spring Boot将war文件部署到外部容器中,错误:NoSuchBeanDefinitionException:没有合格的bean类型

来自分类Dev

遇到错误,未定义类型为[javax.persistence.EntityManagerFactory]的合格Bean:预期为单个匹配的Bean,但找到了2

来自分类Dev

Spring&Maven&JUnit-BeanCreationException:无法自动连线字段NoSuchBeanDefinitionException:没有类型的合格Bean

来自分类Dev

没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望单个bean,但找到0:

来自分类Dev

注入持久性依赖项失败;没有定义类型为[javax.persistence.EntityManagerFactory]的合格Bean

来自分类Dev

Spring Boot Hibernate错误java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax / persistence / ForeignKey;

来自分类Dev

SpringMVC:@Transactional原因:没有定义类型为[...]的合格bean

来自分类Dev

设置Spring配置:未找到依赖项的类型为[]的合格Bean

来自分类Dev

找不到Spring STS javax / persistence / EntityManagerFactory

来自分类Dev

测试Spring MVC API:未找到合格的bean

来自分类Dev

Spring Hadoop配置-没有类型为org.apache.hadoop.conf.Configuration的合格Bean

来自分类Dev

Spring-boot和spring-data-jpa Mysql:创建名称为'entityManagerFactory'的bean时出错

来自分类Dev

没有'org.springframework.mail.javamail.JavaMailSender'类型的合格bean - Spring MVC

来自分类Dev

在 Spring Boot 单表中找不到依赖类型的合格 bean

来自分类Dev

Spring Boot Embedded Tomcat - 没有可用的“javax.sql.DataSource”类型的合格 bean:预期单个匹配 bean,但发现 3

来自分类Dev

启用 Spring 事务,javax.persistence.TransactionRequiredException

来自分类Dev

spring boot kotlin错误创建名为“entityManagerFactory”的bean

Related 相关文章

  1. 1

    错误:带有Spring控制器的javax.persistence.JoinColumn.foreignKey()Ljavax / persistence / ForeignKey

  2. 2

    Spring JPA(Hibernate)没有类型为javax.persistence.EntityManagerFactory的合格Bean

  3. 3

    没有类型为EntityManagerFactory的合格Bean

  4. 4

    没有类型为[javax.persistence.EntityManager]的合格bean

  5. 5

    没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望单个bean,但找到0:

  6. 6

    注入持久性依赖项失败;没有定义类型为[javax.persistence.EntityManagerFactory]的合格bean

  7. 7

    Spring Boot:javax.persistence.TransactionRequiredException:执行更新/删除查询

  8. 8

    Spring数据存储库-没有合格的bean注入

  9. 9

    GAE上的Spring Boot Rest App引发异常,无法将其强制转换为javax.persistence.EntityManagerFactory”

  10. 10

    没有定义类型为[javax.sql.DataSource]的合格bean

  11. 11

    Spring Boot中的JPA存储库“没有类型的合格Bean”

  12. 12

    Spring Boot JPA-没有合格的bean类型

  13. 13

    Spring Boot将war文件部署到外部容器中,错误:NoSuchBeanDefinitionException:没有合格的bean类型

  14. 14

    遇到错误,未定义类型为[javax.persistence.EntityManagerFactory]的合格Bean:预期为单个匹配的Bean,但找到了2

  15. 15

    Spring&Maven&JUnit-BeanCreationException:无法自动连线字段NoSuchBeanDefinitionException:没有类型的合格Bean

  16. 16

    没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望单个bean,但找到0:

  17. 17

    注入持久性依赖项失败;没有定义类型为[javax.persistence.EntityManagerFactory]的合格Bean

  18. 18

    Spring Boot Hibernate错误java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax / persistence / ForeignKey;

  19. 19

    SpringMVC:@Transactional原因:没有定义类型为[...]的合格bean

  20. 20

    设置Spring配置:未找到依赖项的类型为[]的合格Bean

  21. 21

    找不到Spring STS javax / persistence / EntityManagerFactory

  22. 22

    测试Spring MVC API:未找到合格的bean

  23. 23

    Spring Hadoop配置-没有类型为org.apache.hadoop.conf.Configuration的合格Bean

  24. 24

    Spring-boot和spring-data-jpa Mysql:创建名称为'entityManagerFactory'的bean时出错

  25. 25

    没有'org.springframework.mail.javamail.JavaMailSender'类型的合格bean - Spring MVC

  26. 26

    在 Spring Boot 单表中找不到依赖类型的合格 bean

  27. 27

    Spring Boot Embedded Tomcat - 没有可用的“javax.sql.DataSource”类型的合格 bean:预期单个匹配 bean,但发现 3

  28. 28

    启用 Spring 事务,javax.persistence.TransactionRequiredException

  29. 29

    spring boot kotlin错误创建名为“entityManagerFactory”的bean

热门标签

归档