Java微服务(Spring-boot+MyBatis+Maven)入门教程

1 篇文章 0 订阅
1 篇文章 0 订阅

1,项目创建

    新建maven项目,如下图:


选择路径,下一步


输入1和2的内容,点完成


项目创建完毕,结构如下图所示:


填写pom.xml里内容,为了用于打包,3必须选择jar,4和5按图上填写



2,项目配置

2-1,application.properties

server.address=localhost
server.context-path=/
server.port=8090

#------ isosurface ---------
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=gisdemo
spring.datasource.username=sa
spring.datasource.password=sapwd1234
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

2-2,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</groupId>
	<artifactId>gis</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>

	<name>gis.services</name>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath />
	</parent>
	
	<repositories>
		<repository>
			<id>in-project</id>
			<name>In Project Repo</name>
			<url>file:///${project.basedir}/lib</url>
		</repository>
	</repositories>
	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>spring-boot-starter-logging</artifactId>
					<groupId>org.springframework.boot</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- Log4j2 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		<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-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.1</version>
		</dependency>

		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>sqljdbc4</artifactId>
			<version>4.0</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>gisServices</finalName>

		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<description>gis.services</description>
</project>

3,部分页面

StartServer.java - 服务启动页

/**
 * 服务启动
 * 
 * @date 2017-11-28 13:16:28
 */
@SpringBootApplication //必须!
@MapperScan(basePackages = "com.gis.mapper")  //必须!
public class StartServer extends SpringBootServletInitializer {

	private static Class<StartServer> applicationClass = StartServer.class;

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(applicationClass);
	}

	public static void main(String[] args) {
		SpringApplication.run(applicationClass, args);
	}
}

Mapper.java - 数据访问

/**
 * <p>
  *  Mapper 接口
 * </p>
 *
 * @author ${author}
 * @since 2017-07-25
 */
@Mapper
public interface StbprpAndDataMapper{
	
	//List<StbprpAndData> selectDataAndStbprp(Map<String, Object> params);

	  @Select("SELECT A.STCD,A.STNM,A.LGTD,A.LTTD,A.STTP,B.DRP AS COMMENT FROM ST_STBPRP_B A LEFT JOIN \n" + 
	  		"		(SELECT STCD,SUM(DRP) AS DRP FROM ST_PPTN_R WHERE TM <= #{endTime} and TM >= #{beginTime} GROUP BY STCD)B \n" + 
	  		"		ON A.STCD=B.STCD  ORDER BY B.DRP DESC")
	    List<StbprpAndData> selectDataAndStbprp(@Param("beginTime") String bt,@Param("endTime") String et);
}

controller 调用 

List<StbprpAndData> datalist = stbprpAndDataMapper.selectDataAndStbprp(bt, et);

4,运行

    直接运行 StartServer.java ,出现下图代表运行成功,



通过浏览器访问 http://localhost:8090/isosurface/getIso?bt=111&et=222 即可

localhost、8090 在application.properties中配置 

isosurface为controller的@RequestMapping

getIso为conrtoller里方法的@RequestMapping

bt和et为方法参数

@RestController
@RequestMapping("isosurface")
public class IsosurfaceController {

	@Autowired
	private StbprpAndDataMapper stbprpAndDataMapper;

	@RequestMapping("getIso")
	public String getIso(String bt, String et) {
		List<StbprpAndData> datalist = stbprpAndDataMapper.selectDataAndStbprp(bt, et);
		return "";
	}
}

5,打包发布

运行—调试配置,



已经创建过的配置会如图所示,2为配置名,3和4默认不变,然后 调试,出现了BUITL SUCCESS代表打包成功,jar文件会在项目的target目录下



注意:打包会自动从maven服务器上下载jar包然后压缩,无法通过maven下载的第三方jar需要手动添加进本地maven库,如下图所示,先在lib文件夹内根据如下层级结构添加jar包


1、2、3为groupId,4为artifactId,5为版本号,然后在pom.xml中添加如下节点

<dependency>
	<groupId>org.freehep.emf</groupId>
	<artifactId>freehep-graphicsio-emf</artifactId>
	<version>2.1.1</version>
</dependency>

并且指定本地maven库,也就是项目的lib文件夹

<repositories>
	<repository>
		<id>in-project</id>
		<name>In Project Repo</name>
		<url>file:///${project.basedir}/lib</url>
	</repository>
</repositories>

更新maven 保证不报错即可,如果报错,说明层级结构建的不对,按照maven库生成的目录结构来修改项目lib里的目录结构


6,批处理运行

可直接通过cmd运行
java -jar xxxx.jar

或者创建bat批处理程序运行

@echo off

rem 判断默认jar文件是否存在,存在则启动,不存在则遍历当前目录下的jar文件并启动(只取一个,后者覆盖前者)

set jarName=gisServices.jar
set folderName=%cd%

if not exist "gisServices.jar" (
for /f "delims=\" %%f in ('dir /b /a-d /o-d "%folderName%\*.jar"') do (
set jarName=%%f
)
)

::echo %jarName%
java -jar %jarName%
pause

7,其他

配置文件 application.properties 可放到jar同级目录内,外部的配置文件优先级要高于jar包内部的,jar包运行时会自动去查找然后调用配置信息,配置修改后重启服务即可。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值