• SpringBoot01——Framework Introduced and Helloworld


    1.介绍

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

    优点:

     

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

    2.运行Demo

    创建SpringBoot项目的几种方式:

    • 官网的Initializr
    • 使用EclipseSTSIdeaIDE创建Maven项目并引入依赖
    • 使用STS插件的Spring Initializr创建项目

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

    生成下载demo.zip

     

    导入项目

    1.Import一个Maven项目

    2.选择要导入的文件

     

    3.项目骨架

     

    启动项目

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

    安装过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的

    启动后自动停止

     

  • 相关阅读:
    未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序解决办法
    禁止复制 + 锁右键 + 禁止全选(兼容IE Chrome等)
    Oracle面试题
    SQL面试题
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 16: invalid start byte
    Python3 迭代器与生成器
    Python3 循环_break和continue语句及循环中的else子句
    Python3 编程第一步_关键字end
    Python3 编程第一步_斐波纳契数列_连续赋值
    Linux系统管理_主题02 :管好文件(1)_2.4 链接文件_ln
  • 原文地址:https://www.cnblogs.com/littlepage/p/11031303.html
Copyright © 2020-2023  润新知