网上好多关于spring boot的资料,但是完全符合自己需求的很少,这里分享一下使用
idea+spring boot+maven+mybaties+oracle构建web工程并且发布的完整流程。
环境:
jdk1.8
spring boot 2.1.7
idea 20170106
源码下载 https://download.youkuaiyun.com/download/qidaorenzhe/11847210
一,搭建框架
1,Create New Project
2,选择Spring Initialize,jdk1.8--->next
3,默认或者修Group,Artifact--->next
4,添加依赖,回头pom.xml文件中会自动导入需要的组件
4.1勾选Web-Spring Web Starter
4.2勾选SQl-JDBC API和MyBaties Framework
如果你用的mysql,可以加上MySQL Driver
4.3名称默认吧,设置代码路径--->Finish
4.4好了,框架形成了,看下他的模样
二,设置pom.xml,编写测试代码
结构如下
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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.linkage.module</groupId>
<artifactId>forothers</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>forothers</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>oracle.jdbc</groupId>
<artifactId>oracle-jdbc</artifactId>
<version>11.2.0.3.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--以下配置可以帮助我们重新将mybaties的映射文件路径配置到合适的位置(默认在resources文件夹内,很不方便管理)-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
application.properties
server.port=5055
spring.datasource.url=jdbc:oracle:thin:@XXX.XXX.XXX.XXX:XXX:ldims
spring.datasource.username=XXX
spring.datasource.password=XXX
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
mybatis.mapper-locations=classpath*:com/linkage/module/**/dao/mapper/*.xml
这个文件也可以用application.yml代替
server:
port: 5055
spring:
datasource:
name: ldims
url: jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:ldims
username: XXX
password: XXX
driver-class-name: oracle.jdbc.driver.OracleDriver
mybatis:
mapper-locations: classpath*:com/linkage/module/**/dao/mapper/*.xml
二者效果是一样的。前者看起来比较整齐,后者有缩进层次感,而且能减少重复代码,看个人喜好
MicroElecController.java
package com.linkage.module.microelec.controller;
import com.linkage.module.microelec.serv.MicroElecServ;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class MicroElecController
{
@Autowired
private MicroElecServ serv;
@RequestMapping({"/microelec"})
@ResponseBody
public String microelec(@RequestParam(name="param", defaultValue="param") String param)
{
List<Map> result = this.serv.getAllUser();
return "hello,"+param+",your data num is:"+result.size();
}
}
MicroElecFO.java
package com.linkage.module.microelec.controller.fo;
public class MicroElecFO {
private String acc_loginname;
public String getAcc_loginname()
{
return this.acc_loginname;
}
public void setAcc_loginname(String acc_loginname) {
this.acc_loginname = acc_loginname;
}
}
MicroElecServ.java
package com.linkage.module.microelec.serv;
import com.linkage.module.microelec.dao.MicroElecDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class MicroElecServ
{
@Autowired
private MicroElecDAO dao;
public List<Map> getAllUser()
{
return this.dao.selectAll();
}
}
MicroElecDAO.java
package com.linkage.module.microelec.dao;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
@Mapper
public interface MicroElecDAO {
public List<Map> selectAll();
}
MicroElecDAOMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.linkage.module.microelec.dao.MicroElecDAO">
<select id="selectAll" resultType="HashMap">
SELECT ACC_LOGINNAME "acc_loginname" FROM TAB_ACCOUNTS
</select>
</mapper>
写好这些代码就可以本地调试了,我们启动
ForothersApplication.java的main方法
再用浏览器访问http://localhost:5055/microelec?param=Tom
三,发布到服务器
使用idea自己的打包工具,生成forothers-0.0.1-SNAPSHOT.jar,位于项目的target文件夹内
上传到服务器,这里已经安装好了jdk1.8
直接使用指定的jdk执行这个jar包
nohup /export/home/workbentch/jdk1.8.0_202/bin/java -jar forothers-0.0.1-SNAPSHOT.jar &
访问http://IP:5055/microelec?param=Tom
控制台日志在jar包同目录的nohup.out里面
完成,done!!