使用Java6的SpringBoot CRUDAPI 问题
我必须使用使用Java6的SpringBoot CRUDAPI 问题,java,spring-boot,tomcat,tomcat7,java-6,Java,Spring Boot,Tomcat,Tomcat7,Java 6,我必须使用jdk1.6,SpringBoot实现CRUD 解决方案 我决定分两步解决这个问题: 使用一些教程编写CRUD(通常使用JDK1.8) 为JDK 1.6重新配置SpringBoot 我使用H2编写了简单的CRUD。它在JDK1.8中运行良好。我使用了tomcat9作为servlet容器 当我开始为jdk1.6重新配置我的项目时,问题出现了 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mav
jdk1.6
,SpringBoot
实现CRUD
解决方案
我决定分两步解决这个问题:
JDK1.8
)H2
编写了简单的CRUD。它在JDK1.8中运行良好。我使用了tomcat9
作为servlet容器
当我开始为jdk1.6
重新配置我的项目时,问题出现了
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.package</groupId>
<artifactId>notificationservice</artifactId>
<version>1.0.1</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.191</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我用了一篇文章。这些更改只影响到SpringBootApplication
类和pom.xml
,它们现在的外观如下:
SpringBootApplication.java:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import my.package.controllers.NotificationController;
import my.package.repositories.NotificationRepository;
import my.package.services.NotificationService;
@SpringBootApplication
public class NotificationServiceApplication extends SpringBootServletInitializer {
// As I understand - I have to manually put classes to ApplicationContext
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
application.sources(
NotificationServiceApplication.class
, NotificationService.class
, NotificationRepository.class
, NotificationController.class
);
return application;
}
}
pom.xml:(我将嵌入式tomcat从应用程序中排除,并将其部署到Tomcat7
,因为它支持JDK1.6
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.package</groupId>
<artifactId>notificationservice</artifactId>
<version>1.0.1</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.191</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Tomcat 9需要java 8。是的,但是在为
JDK 1.6
重新配置项目之后,我开始使用Tomcat 7
这可以帮助您理解问题:您仍然包括嵌入式Tomcat jdbc驱动程序(默认情况下)with属于较新的tomcat版本。@EiriniGraonidou我使用的是Intellij IDEA
,它会根据项目的JDK
自动通过-target 6
选项