程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Java SE + Spring Data + Hibernate大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Java SE + Spring Data + Hibernate?

开发过程中遇到Java SE + Spring Data + Hibernate的问题如何解决?下面主要结合日常开发的经验,给出你关于Java SE + Spring Data + Hibernate的解决方法建议,希望对你解决Java SE + Spring Data + Hibernate有所启发或帮助;

你看到的异常不是由无效的Spring配置引起的,而是由你的类路径设置引起的。感觉就像关于ASM库和Java 8的版本不兼容。已知Spring 3.2依赖的ASM版本与Java 8不兼容。

因此,如果要使用Java 8运行代码,则需要使用最新的Spring 4.0版本。

解决方法

@H_944_9@

我正在尝试使用Spring Data + Hibernate启动Java SE应用程序,并且到目前为止已经完成了以下工作:

配置文件

@Configuration
@Propertysource("classpath:hibernate.properties")
@EnableJpaRepositories
@EnabletransactionManagement
public class JpaConfiguration {

    private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver";
    private static final String PROPERTY_NAME_DATABASE_password = "db.password";
    private static final String PROPERTY_NAME_DATABASE_URL = "db.url";
    private static final String PROPERTY_NAME_DATABASE_USERNAME = "dB.USERNAME";

    private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect";
    private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "hibernate.show_sql";
    private static final String PROPERTY_NAME_ENTITymANAGER_PACKAGES_TO_SCAN =
            "entitymanager.packages.to.scan";

    @resource
    private Environment env;

    @Bean
    public Datasource datasource() {
        DriveRMANagerDatasource datasource = new DriveRMANagerDatasource();

        datasource.setDriverClassName(
                env.getrequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
        datasource.setUrl(env.getrequiredProperty(PROPERTY_NAME_DATABASE_URL));
        datasource.setUsername(env.getrequiredProperty(PROPERTY_NAME_DATABASE_USERName));
        datasource.setpassword(env.getrequiredProperty(PROPERTY_NAME_DATABASE_password));

        return datasource;
    }

    @Bean
    public LocalContainerEntitymanagerFactoryBean entitymanagerFactory() {
        LocalContainerEntitymanagerFactoryBean entitymanagerFactoryBean = new
                LocalContainerEntitymanagerFactoryBean();
        entitymanagerFactoryBean.setDatasource(datasource());
        entitymanagerFactoryBean.setPersistenceProviderClass(org.hibernate
                .jpa.HibernatePersistenceProvider.class);
        entitymanagerFactoryBean.setPackagesToScan(env.
                getrequiredProperty(PROPERTY_NAME_ENTITymANAGER_PACKAGES_TO_SCAN));

        entitymanagerFactoryBean.setJpaProperties(hibProperties());

        return entitymanagerFactoryBean;
    }

    private Properties hibProperties() {
        Properties properties = new Properties();
        properties.put(PROPERTY_NAME_HIBERNATE_DIALECT,env.getrequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT));
        properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL,env.getrequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));
        return properties;
    }

    @Bean
    public JpatransactionManager transactionManager() {
        JpatransactionManager transactionManager = new JpatransactionManager();
        transactionManager.setEntitymanagerFactory(entitymanagerFactory().getObject());
        return transactionManager;
    }

    @Bean
    public MainBean mainBean() {
        return new MainBean();
    }
}

Start class

public class Start {


    private static final String CONFIG_PACKAGE = "org.app.config";


    public static void main(String[] args) {

        try (AnnotationConfigApplicationContext ctx = new
                AnnotationConfigApplicationContext()) {

            ctx.scan(CONFIG_PACKAGE);
            ctx.refresh();

            MainBean bean = ctx.getBean(MainBean.class);
            bean.start();
        }
    }
}
@H_63_2@main Bean

public class MainBean {

        public void start() {

        System.out.println("Application Started. . .");


    }

}

但是我收到以下异常

Exception in thread "main" org.springframework.beans.factory.beanDefinitionStoreException: Failed to read candidate component class: file [C:\MyPath\target\classes\org\app\config\JpaConfiguration.class]; nested exception is java.lang.IllegalArgumentexception
    at org.springframework.context.Annotation.ClassPathScAnningCandidateComponentProvider.findCandidateComponents(ClassPathScAnningCandidateComponentProvider.java:281)
    at org.springframework.context.Annotation.ClassPathBeanDefinitionScAnner.doScan(ClassPathBeanDefinitionScAnner.java:242)
    at org.springframework.context.Annotation.ClassPathBeanDefinitionScAnner.scan(ClassPathBeanDefinitionScAnner.java:220)
    at org.springframework.context.Annotation.AnnotationConfigApplicationContext.scan(AnnotationConfigApplicationContext.java:153)
    at org.app.Start.main(Start.java:25)
Caused by: java.lang.IllegalArgumentexception
    at org.springframework.asm.ClassReader.<init>(Unknown sourcE)
    at org.springframework.asm.ClassReader.<init>(Unknown sourcE)
    at org.springframework.asm.ClassReader.<init>(Unknown sourcE)
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:52)
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101)
    at org.springframework.context.Annotation.ClassPathScAnningCandidateComponentProvider.findCandidateComponents(ClassPathScAnningCandidateComponentProvider.java:257)
    ... 4 more

有人知道我在做什么错吗?

大佬总结

以上是大佬教程为你收集整理的Java SE + Spring Data + Hibernate全部内容,希望文章能够帮你解决Java SE + Spring Data + Hibernate所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:+Java