转载

了解Spring Boot 程序开发流程以及安装、使用STS创建Spring Boot项目

1.Web 开发的分类

           1.前端:浏览器中,用户交互(HTML ,CSS,JS等)

             

JS框架:Vue ,React,Angular  ---分离的前端/独立的服务器中
				不访问数据库,没有核心业务逻辑,每个用户的浏览器
				与移动端APP有关
JS库:JQuery

SSR:Nuxt.js,页面渲染服务器,也可以基于node.js实现

           2.后端:服务器,业务逻辑和数据操作

CGI:C语言生成动态的HTML
PHP:底层是C,简单,容易上手 PHP+C/C++ +其他混合型
ASP:ASP.net
JSP:JavaServerPages----Servlet,出现了很多的框架:Struts,SpringMVC , Spring Boot
		视图	       控制层	    业务层		     数据访问	
		JSP	      Servlet		Bean		     JDBC            	官方推荐  
		JSP/JSF	      Servlet		EJB(会话,消息)      EJB(实体Bean)	J2EE/Lava EE
		JST	      Struts		Spring		     MyBatis/Hibernate	社区/开发者摸索/ 2002  SSH
		模板引擎	      SpringMVC	        Spring		     MyBatis             SSM
			      SpringMVC	        Spring		     Spring Data	Spring 第三方/Java服务端开发的事实标准
				--------------------------------------------------------------------------------------------------------------------------
						Spring Boot 	一站式/商业化
				模板引擎:JSP/JSTL/Freemaker/Thymeleaf。
				Java Web 中的模版引擎 JSP/JSTL/Freemaker/Thymeleaf 都是 SSR,现在已经不需要了。
				服务端提供开放的RESTful API 接口:前端(Vue),移动端(android ,IOS),桌面端(windows,mas,OS,Linux)
Python:django---知乎,豆瓣
Ruby:Ruby on Rails  ,Twitter:快速的开发
Go:
node.js:服务端开发 express

2.sts(eclipse + spring 开发插件)的安装与使用

      1.下载并解压sts-4.5.1.RELEASE.zip、apache-maven-3.6.3.zip以及JDK版本更新到11

      2.修改镜像(conf/setting.xml)

 <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->

    <mirror>  
      <id>alimaven</id>  
      <mirrorOf>central</mirrorOf>     
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
    </mirror> 
    
  </mirrors>

3.设置STS使用的maven路径


 

 

 4. 字符集,解决乱码问题;推荐 UTF-8

 


3.创建Spring Boot项目

新建一个Spring项目


选择项目需要的: 

 


当选择完后,右侧会出现相应的:


注意:从maven镜像下载依赖的 jar 库,第一次会慢一些,之后会很快,与 npm 不一样 

项目创建成功,会出现下图的工程目录:


4.创建项目可能出现的问题:

      1.工程目录中没有jre

鼠标右键单击项目,点击properties出现


移除错误的jre,加入默认的jre,单击apply即可。

 


成功,工程目录出现:


2.工程创建完,pom.xml报错(网上有很多解决措施,这里只介绍一种解决):

 


右键maven工程,进行更新


在弹出的对话框中勾选强制更新,如图所示

 


稍等片刻,pom.xml的红叉消失了。


项目创建成功后,可以开始使用Spring Boot了。

1.启动


2.打开控制台,查看运行

 


 

 


 

 


接下来开始写代码了:

这是我的工程结构目录:


DemoApplication.java

package com.newer.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//注解标记Spring Boot工程:默认自动装配
@SpringBootApplication
public class DemoApplication {

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

}

 


HomeController.java

package com.newer.demo;


import java.util.HashMap;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * 
 * 添加控制器,注解(标签)成为一个组件(容器管理,不是普通的类)
 * @author Admin
 *
 */
@Controller
public class HomeController {

//	类似vue router
	/**
	 * GET "/"根路径,返回static/home.html视图
	 * @return
	 */
	@GetMapping("/")
	public String home() {
//		字符串:视图名字(static 静态资源)
		return "home.html";
	}
	
	/**
	 * GET "/about"----->static/about.html
	 * @return 视图
	 */
	@GetMapping("/about")
	public String about() {
		return "about.html";
	}
	
	
	/**
	 * GET "/api"--->当前控制器的data()方法
	 * 
	 * @ResponseBody 注解,返回数据而不是视图名字,成了一个服务接口API:前端,移动端,桌面端
	 * @return 数据(字符串或其他类型),不是页面名字
	 */
	@GetMapping("/api")
	@ResponseBody
	public HashMap<String,Object> data() {
		HashMap<String,Object> info=new HashMap();
		info.put("name", "king");
		info.put("age", 15);
		info.put("phone", "16673958571");
		return info;
	}
}

home.html

<!doctype html>
<html lang="en">
  <head>
	<title>Title</title>
	<!-- Required meta tags -->
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

	<!-- Bootstrap CSS -->
	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  </head>
  <body>
	  <div class="jumbotron">
		  <h1 class="display-3">主题</h1>
		  <p class="lead">Jumbo helper text</p>
		  <hr class="my-2">
		  <a href="about.html">关于</a>
		  <p>More info</p>
		  <p class="lead">
			  <a class="btn btn-primary btn-lg" href="Jumbo action link" role="button">Jumbo action name</a>
		  </p>
	  </div>
	<!-- Optional JavaScript -->
	<!-- jQuery first, then Popper.js, then Bootstrap JS -->
	<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  </body>
</html>

about.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>about</h1>
</body>
</html>

application.properties

#应用的端口,默认8080
server.port=9000
#显示Spring MVA的日志
logging.level.web=debug

程序运行如图所示:(浏览器打开设置的9000端口---127.0.0.1:9000)


 

 

程序打包的过程:

 


 

 

正文到此结束
本文目录