Spring-boot avec Liquibase la Surcharge de la Propriété
Je suis en utilisant Printemps de démarrage et Liquibase.
En utilisant cette url de lignes directrices
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/
Dans pom.xml
, ci-dessous l'entrée est présent, de sorte que le printemps boot sait à propos de liquibase.
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
et de mettre le fichier changelog dans le dossier de ressources.
db.changelog-master.xml
Maintenant Printemps de démarrage de la première tring pour trouver db.changelog-maître.yaml dans le classpath et en jetant l'exception de ce genre.
Ne peut pas trouver le changelog emplacement: le chemin de classe de ressource [db/changelog/db.changelog-maître.yaml
Pour Résoudre le Problème, j'ai ajouté de la fève comme ci-dessous dans ma classe et essayé de mettre le changeLog proprty.
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class SampleDataJpaApplication {
@Autowired
LiquibaseProperties properties;
@Autowired
private DataSource dataSource;
@Bean
public SpringLiquibase liquibase() {
SpringLiquibase liquibase = new SpringLiquibase();
properties.setChangeLog("classpath:/db/changelog/db.changelog-master.xml");
liquibase.setChangeLog(this.properties.getChangeLog());
liquibase.setContexts(this.properties.getContexts());
liquibase.setDataSource(this.dataSource);
liquibase.setDefaultSchema(this.properties.getDefaultSchema());
liquibase.setDropFirst(this.properties.isDropFirst());
liquibase.setShouldRun(this.properties.isEnabled());
return liquibase;
}
public static void main(String[] args) throws Exception {
Logger logger = LoggerFactory.getLogger("SampleDataJpaApplication");
SpringApplication springApplication = new SpringApplication();
springApplication.run(SampleDataJpaApplication.class, args);
}
}
mais il échoue avec le message.
org.springframework.les haricots.usine.BeanCreationException: Erreur
la création de haricot avec le nom "sampleDataJpaApplication': Injection de
autocâblés dépendances a échoué; nested exception est
org.springframework.les haricots.usine.BeanCreationException: ne Peut pas
autowire champ:
org.springframework.de démarrage.auto-configurer.liquibase.LiquibaseProperties
de l'échantillon.les données.jpa.SampleDataJpaApplication.propriétés; nested exception
est org.springframework.les haricots.usine.NoSuchBeanDefinitionException: Aucun
qualification bean de type
[org.springframework.de démarrage.auto-configurer.liquibase.LiquibaseProperties]
trouvé pour la dépendance: attendre au moins 1 fève qui remplit les conditions d'
autowire candidat à cette dépendance. La dépendance des annotations:
{@org.springframework.les haricots.usine.annotation.Autocâblés(required=true)}Causés par: org.springframework.les haricots.usine.BeanCreationException:
Ne pouvait pas autowire champ:
org.springframework.de démarrage.auto-configurer.liquibase.LiquibaseProperties
de l'échantillon.les données.jpa.SampleDataJpaApplication.propriétés; nested exception
est org.springframework.les haricots.usine.NoSuchBeanDefinitionException: Aucun
qualification bean de type
[org.springframework.de démarrage.auto-configurer.liquibase.LiquibaseProperties]
trouvé pour la dépendance: attendre au moins 1 fève qui remplit les conditions d'
autowire candidat à cette dépendance. La dépendance des annotations:
{@org.springframework.les haricots.usine.annotation.Autocâblés(required=true)}
Veuillez fournir les intrants ici, pourquoi je reçois cette exception ou Est-il un autre moyen de surcharger la même classe pour que je puisse changer le changeLog de la propriété de liquibase propriétés.
OriginalL'auteur Kul Bhushan Prasad | 2014-06-23
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas entièrement sûr de ce que l'exacte exécution chemin d'accès à votre journal des modifications est, mais pourquoi ne pas simplement utiliser le "liquibase.*" propriétés en
application.properties
? Vous devriez être en mesure de quitter leLiquibase
@Bean
et laisser Démarrer le faire pour vous.Si vous préférez ajouter votre propre
Liquibase
@Bean
puis prendre le conseil et assurez-vous de définir unLiquibaseProperties
bean (par exemple, en déclarant@EnableConfigurationProperties(LiquibaseProperties.class)
).OriginalL'auteur Dave Syer