scala整合spring boot
2019-10-13 本文已影响0人
松松土_0b13
pom.xml
<?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>com.ya</groupId>
<artifactId>ya-boot-scala</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
<scala.version>2.11.8</scala.version>
<skipTests>true</skipTests>
</properties>
<!-- 继承springboot项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!--scala-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<!--web容器-->
<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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<!--添加Data的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--添加mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 是否打包为可执行jar包-->
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>compile-scala</id>
<phase>compile</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile-scala</id>
<phase>test-compile</phase>
<goals>
<goal>add-source</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<recompileMode>incremental</recompileMode>
<scalaVersion>${scala.version}</scalaVersion>
<args>
<arg>-deprecation</arg>
</args>
<jvmArgs>
<jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
</jvmArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
application.yml
server:
port: 7777
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: xxx
password: xxx
url: jdbc:mysql://192.168.10.190:3306/test
jpa:
hibernate:
ddl-auto: update
database: mysql
ScalaApplication.java
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ScalaApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(ScalaApplication.class, args);
}
@Override
public void run(String... strings) throws Exception {
System.out.println("================================项目启动成功==================================================");
}
}
ScalaHelloController控制器
import org.springframework.web.bind.annotation.{RequestMapping, RestController}
@RestController
class ScalaHelloController {
@RequestMapping(value = Array("/hello"))
def sayScalHello() ={
"Hello scala boot..."
}
}
MetaTableService
import com.yaya.domain.MetaTable
import com.yaya.repository.MetaTableRepository
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
@Service
class MetaTableService @Autowired()(metaTableRepository: MetaTableRepository){
def save(metaTable: MetaTable) = {
metaTableRepository.save(metaTable)
}
}
MetaTableRepository
import com.yaya.domain.MetaTable
import org.springframework.data.repository.CrudRepository
trait MetaTableRepository extends CrudRepository[MetaTable,Integer]{
}
MetaTable
import javax.persistence.{Entity, GeneratedValue, Id, Table}
import scala.beans.BeanProperty
@Entity
@Table
class MetaTable {
@Id
@GeneratedValue
@BeanProperty
var id:Integer = _
@BeanProperty
var name:String = _
@BeanProperty
var tableType:String = _
@BeanProperty
var dbId:String = _
}