1.介绍

SpringBoot主要解决的是在微服务的架构下简化配置(有快速配置)、前后端分离、快速开发

优点:

  • l 提供了快速启动入门
  • l 开箱即用、提供默认配置
  • l 内嵌容器化web项目
  • l 没有冗余代码生成和xml配置要求

2.运行Demo

创建SpringBoot项目的几种方式:

  • l 官网的Initializr
  • l 使用Eclipse、STS、Idea等IDE创建Maven项目并引入依赖
  • l 使用STS插件的Spring Initializr创建项目

访问http://start.spring.io/  进入Spring项目Initializr

生成下载demo.zip

导入项目

1.Import一个Maven项目

2.选择要导入的文件

3.项目骨架

启动项目

l 直接run启动程序里的Main()方法

l 安装过STS插件或使用STS可以在项目上右键RunAS->Spring Boot APP

运行成功提示信息:

如果运行报错,请参照常见问题。

个性化

修改启动banner

在resources目录下新建banner.txt

http://www.network-science.de/ascii/  英文

https://www.degraeve.com/img2txt.php 图片

${AnsiColor.BRIGHT_CYAN}
_ _ _ _ _ ______
| | (_)| | | | | | | ___ \
| | _ | |_ | |_ | | ___ | |_/ /__ _ __ _ ___
| | | || __|| __|| | / _ \| __// _` | / _` | / _ \
| |____| || |_ | |_ | || __/| | | (_| || (_| || __/
\_____/|_| \__| \__||_| \___|\_| \__,_| \__, | \___|
__/ |
|___/
${AnsiColor.BRIGHT_RED}
Logo Designer: LittlePage
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}

Eclipse的皮肤

菜单栏中

Help -> EclipseMarketplace

搜索Theme

傻瓜式安装这个,安装完成会提示重启,跟随指引选择喜欢的风格。

简单使用

application.properties

把所有的配置全放在这个文件里,方便统一管理,maven也可以做到

修改tomcat端口

server.port=90

修改项目路径

server.servlet.context-path=/demo

多个入口main方法,打包之后找不到入库类

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.yxxy.MyApp</mainClass>
</configuration>
</plugin>
</plugins>
</build>

HelloWorld

RestController

RestController = @Controller+@ResponseBody

一个效果

@RestController

public class MyAppController {

@RequestMapping("/")

public Map<String, String>  index() {

Map<String, String> map = new HashMap<>();

map.put("aaa", "bbb");

map.put("aaa", "bbb");

map.put("aaa", "bbb");

map.put("aaa", "bbb");

return map;

}

使用thymeleaf模板引擎

Pom.xml引用
<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>
Controller代码
@Controller

public class IndexController {

@RequestMapping("/")

public String index(ModelMap map) {

// 加入一个属性,用来在模板中读取

map.addAttribute("msg", "nihao~");

return模板文件的名称,对应src/main/resources/templates/index.html

return "index";

}

模板文件代码
<h1 th:text="${msg}">hi!</h1>

稍微复杂的restful api应用

UserRestfulController
@RequestMapping("/") @RestController public class UserRestfulController { static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long,User>()); @RequestMapping(value="/User",method=RequestMethod.GET) public List<User> getUserList(){ ArrayList<User> list = new ArrayList<>(users.values()); return list; } @RequestMapping(value="User",method=RequestMethod.POST) public String addUser(@ModelAttribute User user) { users.put(user.getId(), user); return "addUser Success"; } } User
public class User { private Long id; private String loginName; private String password; private String nickName; 注入Service
UserRestfulController @Autowired private UserService userSrv; @RequestMapping(value="/User",method=RequestMethod.GET) public List<User> getUserList(){ return userSrv.getUserList(); } @RequestMapping(value="User",method=RequestMethod.POST) public String addUser(@ModelAttribute User user) { String msg = userSrv.addUser(user); return msg; } UserService
@Service public class UserService { static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long,User>()); public List<User> getUserList() { ArrayList<User> list = new ArrayList<>(users.values()); return list; } public String addUser(User user) { users.put(user.getId(), user); return "addUser Success"; } }

前端模板显示

 <h1>User list</h1>

  <table>

    <tr>

      <th>NAME</th>

      <th>loginName</th>

      <th>nickName</th>

    </tr>

    <tr th:each="user : ${list}">

      <td th:text="${user.id}">id</td>

      <td th:text="${user.loginName}">loginName</td>

      <td th:text="${user.nickName}">nickName</td>

    </tr>

  </table>

  <p>

    <a href="../home.html" th:href="@{/}">Return to home</a>

  </p>

常见问题

Pom.xml

Springboot项目必须要继承的parnet

Pom.xml第一行报错

进入本地库

for /r %i in (*.lastUpdated) do del %i   

然后update

缺少或包错误

删掉 重新update

找不到主类

所有错误都解决后

Jar方式运行 首先得有这个jar包

先clean package 生成jar文件,然后再run main方法

找不到jdk

把jre的路径换成jdk的

启动后自动停止

SpringBoot01——Framework Introduced and Helloworld的更多相关文章

  1. Entity Framework 6 vs NHibernate 4

    This article is dedicated to discussing the latest releases of the NHibernate and Entity Framework. ...

  2. OSGI框架—HelloWorld小实例

    OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...

  3. Entity Framework Code-First(2):What is Code-First?

    What is Code-First?: Entity Framework introduced Code-First approach from Entity Framework 4.1. Code ...

  4. Designing for iOS: Graphics & Performance

    http://robots.thoughtbot.com/designing-for-ios-graphics-performance  [原文] In the previous article, w ...

  5. Differences Between Xcode Project Templates for iOS Apps

    Differences Between Xcode Project Templates for iOS Apps When you create a new iOS app project in Xc ...

  6. OSGI(面向Java的动态模型系统)

    基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 O ...

  7. JVM菜鸟进阶高手之路十二(jdk9、JVM方面变化, 蹭热度)

    转载请注明原创出处,谢谢! 经过 4 次跳票,历经曲折的 Java 9 正式版终于发布了!今天看着到处都是jdk9发布了,新特性说明,心想这么好的蹭热度计划能错过嘛,哈哈,所以就发了这篇文章. 目前j ...

  8. Enterprise Craftsmanship

    转自:http://enterprisecraftsmanship.com/2015/04/13/dto-vs-value-object-vs-poco/ DTO vs Value Object vs ...

  9. [No0000129]WPF(1/7)开始教程[译]

    概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...

随机推荐

  1. Searching for MobileNetV3

    1. 摘要 基于网络架构搜索和 NetAdapt 算法,作者提出了新一代的 MobileNets,并通过一些先进的结构对其进行了改进. 作者发布了两个模型 MobileNetV3-Large 和 Mo ...

  2. 浏览器端-W3School-HTML:HTML DOM cells 集合

    ylbtech-浏览器端-W3School-HTML:HTML DOM cells 集合 1.返回顶部 1. HTML DOM cells 集合 HTML DOM Table 对象 定义和用法 cel ...

  3. Android 夜间模式的实现

    package com.loaderman.daynightdemo; import android.os.Bundle; import android.support.v7.app.AppCompa ...

  4. zabbix服务器性能监控工具的安装一

    Linux下安装zabbix需要有LNMP运行环境,本篇记录安装LNMP的过程 目录 1.准备工作 2.安装mysql 3.安装nginx 4.安装php 1.准备工作 1.1准备一台centos6. ...

  5. Linux服务器重启后IP变掉的处理方式

    工作中有一台服务器为物理机,重启后IP就变掉了,影响到了使用,于是将服务器上的IP配置为静态方式,问题得以解决,具体如下: 1.登陆Linux服务器,cd /etc/sysconfig/network ...

  6. js实现动画(移动方块)

    1.使方块移动 源码 : <script type="text/javascript">    var div = document.createElement('di ...

  7. DSP28335 eCAP 测频

    F28335共有6组eCAP模块,每个eCAP不但具有捕获功能,而且还可用作PWM输出功能.F28335捕获模块的主要特征如下: 1. 150MHz系统时钟的情况下,32位时基的时间分辨率为6.67n ...

  8. 快速生成500W测试数据库

    快速生成500W测试数据库: 创建测试表: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_ ...

  9. spring boot-8.静态资源映射

    1.webjars WebJars是将客户端(浏览器)资源(javascript,Css等)打成jar包文件,以对资源进行统一依赖管理.WebJars的jar包部署在Maven中央仓库上.官网地址:h ...

  10. PostgreSQL逻辑复制到kafka-实践

    kafka 安装 wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz cp kafka_2.12-2.0.1.t ...