spring boot(一)建立项目

网上有不少springboot的入门教程,本身也由于项目要使用springboot,因此利用业余时间自学了下springboot和springcloud,使用下来发现springboot仍是挺简单的,体现了极简的编程风格,大部分通用都是经过注解就能够完成,下面就来详细讲解下如何使用springboot来开发一个简单的restful api网关功能,能够提供给H5或者android、ios进行接口开发,仍是很方便的。php

1. 使用spring initialization建立SpringBoot项目

有不少方法能够快速建立Springboot项目,能够经过idea的springboot initialization来建立,也能够经过手工新建一个maven工程,而后引入springboot的dependency来完成sprignboot的工程导入,还能够经过spring官网的来建立springboot项目,由于有些同窗可能没装idea,这里就经过官网的工程初始化指引来建立一个springboot空工程。java

  网址 https://start.spring.io   打开网址能够看到下图android

在serch for dependency输入web,便可完成基本的restful接口网关的功能,若是要JPA或者oauth安全相关的组件,能够增长rest repository、spring security等相关组件依赖库,spring提供的配套组件仍是不少的,基本涵盖了全部应用场合。
加入web组件后,点击下方的绿色按钮Generate Project便可建立一个springboot工程,而且自动下载到本地,接下来直接在idea打开该工程就能够了,在建立的时候能够选择Maven工程或者Gradle工程,这里咱们使用了比较熟悉的Maven工程。ios

2. 工程结构

在idea中打开工程 ,目录结构入下图:web

 

 能够看到工程中有maven的pom文件,也自动建立了SpringbootStartApplication.java该类为springboot的启动类,待会儿咱们一块儿看下这个类,先看下maven的pom文件有哪些。这里主要是依赖了springboot的1.4.7版本,目前最新已经更新到1.5.6了,这里没有用最新版本,仍是不当小白鼠了,在dependency中依赖了spring-boot-starter-web还有个test测试的组件,若是不写测试代码,能够不使用该test组件,最后还加入了支持springboot的maven plugin组件。spring

<?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.demo</groupId>
	<artifactId>pollydemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>pollydemo</name>
	<description>Demo project for Spring Boot</description>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<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>
		</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>
			</plugin>
		</plugins>
	</build>
</project>

 

 刚看完了pom文件,在导入工程的时候,ide通常会自动导入依赖库,在国内访问maven的依赖库速度感人,建议使用阿里云的maven镜像服务器,或者使用公司的maven私服,若是公司没有私服或者本身学习能够直接使用阿里云的镜像速度仍是不错的,maven setting.xml中须要添加mirror地址,具体如何配置这里就不详细描述了,能够自行百度,这里也顺便附上阿里云maven地址:chrome

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

   配置好了pom后,咱们一块儿看下自动生成的Application.java这个类至关于咱们程序的main函数入口,这里再顺便介绍下由于springboot集成了Tomcat和Jetty,默认使用Tomcat做为应用容器,开发者只须要将工程打成jar包直接丢到服务器上就能够执行了,不须要再单独部署到was、jboss、tomcat这些应用服务器上。
SpringBootStartApplication.javaapache

@SpringBootApplication
public class PollydemoApplication {

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

  全部的springboot application启动类都须要在类级别上加上@SpringBootApplication注解,其余参数不用任何调整,后续能够把一些初始化的动做放到该类中进行,目前本例中就不加其余的启动加载项了。
这样一个api网关的架子就搭好了,是否是很简单!下面咱们就能够将主要精力聚焦在业务逻辑代码上了,这里为了简化程序,不会将项目进行深刻的分层设计,在实际项目中,通常都会对项目进行分层设计,若是是api网关,没有view层可是起码也会有对外接入decontroller层、处理业务逻辑的service层、处理数据持久化的dao层,同时也会有一些POJO业务实体类,这里就不详细展开了,后续也会对互联网架构设计进行详细讲述,这里咱们只建立了一个UserController类,里面只有获取用户信息的方法,分别根据参数和请求方式的不一样用三种方法进行了重写,下面就来一一道来。编程

先来说述下最简单的使用get请求用户信息的实现方式,代码以下,写好后直接在Application类点击右键有个RunAs,点击后会自动运行,运行成功后可使用http发包工具进行测试,这里推荐使用chrome的postman或者使用firefox的httprequester插件,都是比较简单的发包工具,get请求的上送为http://localhost:8081/springboot/getUserByGet?userName=feiweiweiapi

/**
* 用户
* <p>
* 1.
* </p>
*
* @author pollyLuo
* @version 1.0.0
* @date 2018-09-11
*/
@RestController
@RequestMapping(value = "/user/")
public class UserController {


@ResponseBody
@RequestMapping(value = "getUser", method = RequestMethod.GET)
public String getUser(@RequestParam(value = "userName") String userName) {
return "hello:" + userName;
}
}

 指定端口与项目名称,修改配置文件 (application.properties)

server.port=8090
server.servlet.context-path=/polly-demo

Spring Boot 更换 Banner

咱们先来回顾一下在 Spring Boot 1.0 中如何更换启动 Banner,其实都很简单,只须要在src/main/resources路径下新建一个banner.txt文件,banner.txt中填写好须要打印的字符串内容便可。

通常状况下,咱们会借助第三方工具帮忙转化内容,如网站http://www.network-science.de/ascii/将文字转化成字符串,网站:http://www.degraeve.com/img2txt.php能够将图片转化成字符串。

 

  

 

 转载于:https://blog.csdn.net/liutong123987/article/details/79385513

相关文章
相关标签/搜索