springboot配置文件配置信息、依赖导入啥的就跳过了
直接上代码
domain
package com.ljq.domain
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:Integer = _
}
repository:
package com.ljq.repository
import com.ljq.domain.MetaTable
import org.springframework.data.repository.CrudRepository
trait MetaTableRepository extends CrudRepository[MetaTable, Integer]{
}
service:
package com.ljq.service
import com.ljq.domain.MetaTable
import com.ljq.repository.MetaTableRepository
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
@Service
class MetaTableService @Autowired()(metaTableRepository:MetaTableRepository){
@Transactional
def save(metaTable:MetaTable) = {
metaTableRepository.save(metaTable)
}
def query() = {
metaTableRepository.findAll()
}
}
controller:
package com.ljq.controller
import com.ljq.domain.MetaTable
import com.ljq.service.MetaTableService
import com.ljq.utils.ResultVOUtil
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation._
@RestController
@RequestMapping(Array("/meta/table"))
class MetaTableController @Autowired()(metaTableService: MetaTableService) {
@RequestMapping(value = Array("/"), method = Array(RequestMethod.POST))
@ResponseBody
def save(@ModelAttribute metaTable:MetaTable) = {
metaTableService.save(metaTable)
ResultVOUtil.success() // 此处就是Scala调用已有的Java代码
}
@RequestMapping(value = Array("/"), method = Array(RequestMethod.GET))
@ResponseBody
def query() = {
ResultVOUtil.success(metaTableService.query())
}
}
启动类:
package com.ljq
import org.springframework.web.bind.annotation.{RequestMapping, RequestMethod, RestController}
@RestController
class ScalaHelloSpringBoot {
@RequestMapping(value = Array("/HelloScala"),method = Array(RequestMethod.GET))
def HelloScala() = {
"Hello Scala SpringBoot......"
}
}
调用的java类:
package com.ljq.utils;
import java.io.Serializable;
/**
* http请求返回的对象
*/
public class ResultVO<T> implements Serializable {
/**错误码*/
private Integer code;
/**提示信息*/
private String msg;
/**具体内容*/
private T data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
package com.ljq.utils;
/**
* 返回值工具类
*/
public class ResultVOUtil {
public static ResultVO success(Object object) {
ResultVO resultVO = new ResultVO();
resultVO.setData(object);
resultVO.setCode(0);
resultVO.setMsg("成功");
return resultVO;
}
public static ResultVO success() {
return success(null);
}
public static ResultVO error(Integer code, String msg) {
ResultVO resultVO = new ResultVO();
resultVO.setCode(code);
resultVO.setMsg("msg");
return resultVO;
}
}