我正在尝试使用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)); …Run Code Online (Sandbox Code Playgroud) 我目前正在将我的应用程序从Java 7迁移到Java 8,目前我正在运行Spring 3.1.6 jar.这是否与Java 8兼容或者我需要升级Spring jar?
我知道Spring 4x版本对Java 8有自然的支持,但这对时间至关重要,我正在寻求尽可能少的改变.
我在这个版本的Java上使用Maven 3.2.3
davea$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
我跑的时候
mvn clean install
Run Code Online (Sandbox Code Playgroud)
我在集成测试中遇到如下错误...
testFindSampleUsersByCodeAscByDefault(org.mainco.subco.user.service.SampleUserService2IT) Time elapsed: 2.204 sec <<< ERROR!
java.lang.VerifyError: Expecting a stackmap frame at branch target 57
Exception Details:
Location:
org/mainco/subco/user/service/SampleUserServiceImpl$ValueComparator.compare(Lorg/mainco/subco/user/domain/User;Lorg/mainco/subco/user/domain/User;)I @10: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab4 001b 2bb9 002e 0200 c600 2f2a b400
0x0000010: 1b2b b900 2e02 00c0 0030 b600 34c6 001c
0x0000020: 2ab4 001b 2bb9 002e 0200 c000 30b6 0034
0x0000030: b600 39b6 003e a700 0512 404e 2ab4 001b
0x0000040: 2cb9 002e …Run Code Online (Sandbox Code Playgroud) verifyerror java-8 maven-failsafe-plugin maven-compiler-plugin
我们目前正在使用spring 3.2.9.我们正在考虑将其升级到更新版本.当我检查文档时,它说明了这一点
与4.0 M1一起,我们发布了Spring Framework 3.2.3,其中包含针对最近报告的问题的修复,但也提供了OpenJDK 8运行时支持.对于针对JDK 7(使用-target 1.7)或更早版本编译的应用程序,Spring Framework 3.2.x将支持在JDK 8运行时上进行部署.
这是否意味着我无法在Java 8上编译?
如果我想用Java 8编译,我应该使用Spring 4.0.x版吗?