java spring spring-boot

java - Spring Boot EntityManagerFactoryBuilder no está habilitado automáticamente



spring-boot (3)

En una aplicación Spring Boot, estoy intentando configurar varias conexiones de base de datos. Comencé a construir el origen de datos principal, pero obtengo el siguiente error en el método mySqlEntityManagerFactory.

No podría autowire. no hay beans de EntityManagerFactoryBuilder

import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.Transactional; import javax.persistence.PersistenceContext; import javax.sql.DataSource; import java.util.HashMap; import java.util.Map; @Configuration @Transactional @EnableTransactionManagement @EnableJpaRepositories( basePackages = "digital.sheppard.dao", entityManagerFactoryRef = "entityManager", transactionManagerRef = "transactionManager") public class PrimaryDBConfig { @Bean(name="dataSource") @Primary @ConfigurationProperties(prefix = "primary.datasource.mysql") public DataSource mysqlDataSource() { return DataSourceBuilder.create().build(); } @PersistenceContext(unitName = "primary") @Primary @Bean(name = "entityManager") public LocalContainerEntityManagerFactoryBean mySqlEntityManagerFactory(EntityManagerFactoryBuilder builder) { return builder.dataSource(mysqlDataSource()).persistenceUnit("primary").properties(jpaProperties()) .packages("digital.sheppard.model").build(); } private Map<String, Object> jpaProperties() { Map<String, Object> props = new HashMap<String, Object>(); props.put("hibernte.ejb.naming_strategy", "org.hibernate.cfg.ImprovedNamingStrategy"); props.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect"); return props; } }

¿Cómo autorizo ​​el EntityManagerFactoryBuilder?

Estoy intentando seguir el código de este blog https://raymondhlee.wordpress.com/2015/10/31/configuring-multiple-jpa-entity-managers-in-spring-boot/

Aquí está la clase de aplicación principal si es útil

@Configuration @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) @ComponentScan public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }


¿Ha intentado eliminar su exclusión de ''DataSourceAutoConfiguration''?

El uso de ''@EnableAutoConfiguration (exclude = {DataSourceAutoConfiguration.class}) evita que se creen muchos beans.

Si tiene un problema al usar una fuente de datos y agregar esta es su solución, tal vez no sea la correcta.

Sepa que las botas de primavera detectan la presencia de ciertas clases en el classpath. Si está utilizando maven, está leyendo todas las clases de todas las dependencias.

Así que considera dejar que este DataSourceAutoConfiguration.class se ejecute;

aclamaciones


Creo que deberías eliminar este código

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})


fue causado por tu software ide, configura estas opciones