springBoot 总结

JAVA学习网 2018-01-20 07:37:02

目录

1.创建项目

2.

教你 Springboot 一步一步做项目

打开 Intellij Idea 编辑器

创建一个新项目

  • 点击Create New Project 
  • 选择左侧的Spring Initializr 
  • 在右边,选择 default 从 https://start.spring.io 创建,点击 Next
  • 在接下来的页面中,填写相关信息,比如 组/项目名, 指定创建 Gradle 项目,点击 Next
  • 在这个页面中,添加我们项目中需要用到的 Spring 插件,一般来说 Web / Jpa / Thymeleaf / MySQL  点击 Next
  • 然后,填写项目名字,指定保存目录,点击 Finish,确认初始化 Gradle 项目就可以了。

配置我们的 Springboot 参数

  • 修改配置我们的 build.gradle 然后刷新
    apply plugin: 'idea'
    ext['thymeleaf.version'] = '3.0.9.RELEASE'
    ext['thymeleaf-layout-dialect.version'] = '2.2.2'
  • 在 application.properties 修改基础参数
    server.port=6666
    
    spring.datasource.url=jdbc:mysql://localhost:3306/another_springboot_db
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    spring.jpa.show-sql=true
    spring.jpa.hibernate.ddl-auto=update
    
    spring.thymeleaf.mode=html
    spring.thymeleaf.cache=false
    
    spring.messages.encoding=GBK
  • 开启 MySQL 服务, 在 MySQL 中创建相关的数据库
    create database another_springboot_db
  • 开启我们的服务器
    localhost:6666

创建 Book 模块, 在里面分别创建 entity/dao/controller

  • 创建 model/Author.java
    @Entity
    public class Author {
        @Id
        @GeneratedValue
        private Long id;
    
        private String name;
    
        private String telephone;
    
        @OneToMany(mappedBy = "author")
        private List<Book> books;
    
        //...
    }
  • 创建 model/Book.java
  • 创建 dao/AuthorDAO.java
    public interface AuthorDAO extends JpaRepository<Author, Long> {
    }
  • 创建 dao/BookDAO.java
  • 创建 web/AuthorController.java
    @Controller
    public class AuthorController {
        @Autowired
        private AuthorDAO authorDAO;
    
        @GetMapping("/author_add")
        public String add() {
            return "book/add_author";
        }
    
        @PostMapping("/author_add")
        public String store(Author author) {
            authorDAO.save(author);
            return "redirect:author_add";
        }
    }
  • 创建 web/BookController.java

为 Book 模块创建 Thymeleaf 模板 Layout

  • 首先,在 resource 目录下面创建资源文件 messages.properties 
  • 在资源文件里面,添加要使用的公共参数
  • 创建公共布局文件 layout/book.html 

Book 增加功能示例

  • 在 BookController 里面创建两个方法 add/save 分别用来呈现添加的 form 表单还有处理 form 请求
    @GetMapping("/add")
    public String add(Model model) {
        model.addAttribute("authors", authorDAO.findAll());
        return "book/add";
    }
    
    @PostMapping("/add")
    public String save(Book book, Model model) {
        bookDAO.save(book);
        return "redirect:index";
    }
  • 为新增书籍创建 form 表单页面,使用我们定义的 layout 扩展
    <!DOCTYPE html>
    <html lang="en"
          xmlns:th="http://www.thymeleaf.org"
          xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
          layout:decorate="layout/book">
    <head>
        <title>书籍添加</title>
    </head>
    
    <div layout:fragment="content">
        <form th:action="@{/book/add}" method="post">
            <div class="form-group">
                <label for="name">名字</label>
                <input type="text" class="form-control" id="name" name="name">
            </div>
            <div class="form-group">
                <label for="price">价格</label>
                <input type="number" class="form-control" id="price" name="price">
            </div>
            <div class="form-group">
                <label for="author">作者</label>
                <select class="form-control" id="author" name="author.id">
                    <option value="-1">请选择</option>
                    <option th:each="author : ${authors}"
                            th:value="${author.id}"
                            th:text="${author.name}">作者</option>
                </select>
            </div>
    
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
    
    </html>

    为新增页面添加相关验证

    • 首先,推荐使用 Java 的 JSR-303 规范的验证框架
      1. 在实体类上加上 @NotBlank / @NotNull / @Size / @Pattern / @Email 等注解
      2. 在控制器里,为数据绑定的类,提供 @Valid 注解,并 紧跟着 一个 BindingResult 对象用来接收校验结果
      3. 在页面中,使用 th:if(${fields.hasErrors()})  / th:errors  等方法显示出错信息
    • 其次,其他简单错误使用 errors.reject() 的方法在 Controller 里手动校验
      if(book.getAuthor() == null || book.getAuthor().getId() < 1) {
          errors.rejectValue("author", null, "您需要填写作者的信息哦!");
      }
      if(errors.hasErrors()) {
          model.addAttribute("authors", authorDAO.findAll());
          return "book/add";
      }
    • 然后,一些更复杂,需要重用的校验逻辑,你可以:
      • 自定义 JSR 标准的校验注解和校验类
      • 自定义 Spring 的校验器
阅读(773) 评论(0)