目的:建立一个简单的联系人列表; 使用 spring boot + maven 进行构建

【0】文件结构如下:

【1】pom.xml 如下:

<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.habuma</groupId><artifactId>contacts</artifactId><version>0.1.0</version><packaging>jar</packaging><!-- spring boot 的 web starter 能够将 spring mvc 需要的所有内容全部添加到构建中--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.1.4.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring4</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId></dependency><dependency><groupId> org.springframework.boot</groupId><artifactId>spring-boot-actuator</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

【2】请求控制器 ContactController.java

package contacts;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
@RequestMapping("/")
public class ContactController {private ContactRepository contactRepo;@Autowiredpublic ContactController(ContactRepository contactRepo) {this.contactRepo = contactRepo;}@RequestMapping(method=RequestMethod.GET)public String home(Map<String,Object> model) {List<Contact> contacts = contactRepo.findAll();model.put("contacts", contacts);return "home";}@RequestMapping(method=RequestMethod.POST)public String submit(Contact contact) {contactRepo.save(contact);return "redirect:/";}
}

【3】java bean, Contact.java

public class Contact {private Long id;private String firstName;private String lastName;private String phoneNumber;private String emailAddress;// setter + getter 方法
}

【4】创建视图

【4.1】 在maven中建立以来 thymeleaf 模板

<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring4</artifactId></dependency>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot Contacts</title>
<link rel="stylesheet" th:href="@{/style.css}" />
</head>
<body><h2>Spring Boot Contacts</h2><form method="POST"><label for="firstName"> First Name:</label> <input type="text" name="firstName"></input><br /> <label for="lastName"> Last Name:</label> <input type="text" name="lastName"></input><br /> <label for="phoneNumber"> Phone #:</label> <input type="text" name="phoneNumber"></input><br /> <label for="emailAddress"> Email:</label><input type="text" name="emailAddress"></input><br /> <input type="submit"></input></form><ul th:each="contact : ${contacts}"><li><span th:text="${contact.firstName}">First</span><span th:text="${contact.lastName}">Last</span> : <span th:text="${contact.phoneNumber}">phoneNumber</span>,<span th:text="${contact.emailAddress}">emailAddress</span></li></ul>
</body>
</html>

style.css

body {background-color: #eeeeee;font-family: sans-serif;
}
label {display: inline-block;width: 120px;text-align: right;
}

【5】持久化数据

【5,.1】 建立maven依赖 jdbc 和 h2 内嵌数据库

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId></dependency>

【5.2】 基于spring 建立 dao

package contacts;
import java.util.List;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;@Repository
public class ContactRepository {private JdbcTemplate jdbc;@Autowiredpublic ContactRepository(JdbcTemplate jdbc) {this.jdbc = jdbc;}public List<Contact> findAll() {return jdbc.query("select id, firstName, lastName, phoneNumber, emailAddress " +"from contacts order by lastName",new RowMapper<Contact>() {public Contact mapRow(ResultSet rs, int rowNum)throws SQLException {Contact contact = new Contact();contact.setId(rs.getLong(1));contact.setFirstName(rs.getString(2));contact.setLastName(rs.getString(3));contact.setPhoneNumber(rs.getString(4));contact.setEmailAddress(rs.getString(5));return contact;}});}public void save(Contact contact) {jdbc.update("insert into contacts " +"(firstName, lastName, phoneNumber, emailAddress) " +"values (?, ?, ?, ?)",contact.getFirstName(), contact.getLastName(),contact.getPhoneNumber(), contact.getEmailAddress());}
}

【6】建立启动类

package contacts;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;@ComponentScan
@EnableAutoConfiguration
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

【7】构建项目 mvn pacakge

补充: schema.sql SQL文件:

create table contacts (id identity,firstName varchar(30) not null,lastName varchar(50) not null,phoneNumber varchar(13),emailAddress varchar(30)
);

spring boot 入门-使用spring boot构建简单应用相关推荐

  1. Spring基础入门6 - Spring JDBC

    JDBC(Java DataBase Connectivity)是一套Java访问关系型数据库的标准, JDBC只定义接口,具体实现由各个厂商(框架)负责. Spring使用的是javax.sql.D ...

  2. Spring MVC入门:Spring MVC是什么?

    Spring MVC是什么? Spring MVC 是一个模型 - 视图 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到 ...

  3. db2v9/9.5高级应用开发_Spark v2.4.3应用程序开发入门-基于IDEA/Maven 构建简单应用

    Spark 提供了丰富的API,让开发人员可以使用简洁的方式,来处理复杂的数据计算和分析. 在开始Spark应用开发之前,需要做好如下准备工作. (1)搭建好Hadoop环境(如果需要访问HDFS): ...

  4. idea构建springboot项目右边没有maven_写给新手看的 Spring Boot 入门学习指南

    什么是 Spring Boot ? 解释一下:Spring Boot 可以构建一切.Spring Boot 设计之初就是为了最少的配置,最快的速度来启动和运行 Spring 项目.Spring Boo ...

  5. (转)构建微服务:Spring boot 入门篇

    转自: Spring Boot(一):入门篇 - 纯洁的微笑 - 博客园 : 什么是Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 S ...

  6. 构建简单spring boot 项目

    2019独角兽企业重金招聘Python工程师标准>>> 本篇blog的目的 完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理. spring boot的简 ...

  7. 构建微服务:Spring boot 入门篇

    Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的发布,Spring IO团队逐渐开 ...

  8. spring boot入门(九) springboot的过滤器filter。最完整、简单易懂、详细的spring boot教程。

    关于过滤器和拦截器的区别,已经spring boot入门(七)中说明.下面举个过滤器的应用场景,比如用户信息页只有再用户登录后才可以进入,没有登录的用户是无法进入的,此时便可以采用过滤器来讲没有登录的 ...

  9. idea启动springboot卡_写给新手看的 Spring Boot 入门学习指南

    什么是 Spring Boot ? 解释一下:Spring Boot 可以构建一切.Spring Boot 设计之初就是为了最少的配置,最快的速度来启动和运行 Spring 项目.Spring Boo ...

最新文章

  1. springmvc基础入门,你确定你真的理解_双亲委派_了吗?
  2. Maven Filter
  3. Python 基本数据类型 (一) - 整数
  4. vue中render: h = h(App)的详细解释
  5. 卖票案例 多线程 java 1615387415
  6. dataframe格式的数据处理
  7. MFC小笔记:TabCtrl父子窗口传递消息
  8. c语言const限制什么,[C语言]类型限定词const解析
  9. 为MyEclipse 9/10中的html/JSP编辑器添加代码自动提示
  10. python模块搜索原则_python 从小白开始 - 模块,包以及路径搜索
  11. 第三章 集合的基本概念和运算
  12. macos 系统固件 路径_itunes下载固件在哪里 itunes下载固件位置【介绍】
  13. 声声慢 - 程序人生
  14. Python+Tensorflow+Opencv人脸识别(任意数量人脸)
  15. 2023年五一数学建模 | 第二十届五一数学建模B题:快递需求分析问题思路
  16. 服务器迁移到阿里云的解决方案
  17. 图文手把手教程--ESP32 MQTT连接阿里云生活物联网平台
  18. 请求分页置换算法——先进先出算法(FIFO)
  19. 便携式微型计算机和笔记本的区别,笔记本和超极本及上网本 细谈三者区别
  20. 自动生成文件目录列表

热门文章

  1. CF296B dp\容斥
  2. I - Triple HDU - 5517
  3. 不止代码:ybtoj-棋盘分割(二维区间dp)
  4. Loj#6053-简单的函数【Min25筛】
  5. P4827-[国家集训队]Crash 的文明世界【树形dp,换根法,斯特林数】
  6. jzoj4274-终章-剑之魂【位运算,贪心】
  7. ARC106——E - Medals
  8. 【树状数组】递增子序列(金牌导航 数据结构优化DP-1)
  9. 【动态规划】 石子合并问题(环形) (ssl 1597)
  10. ACID中C与CAP定理中C的区别