`
周一Monday
  • 浏览: 342718 次
  • 来自: 北京
社区版块
存档分类
最新评论

快速搭建spring boot 应用

阅读更多

创建一个用户列表,实现快速搭建spring boot的例子。

 

技术选型

1、spring boot

2、spring

3、spring JDBC

4、spring mvc

5、h2 数据库

6、thymeleaf

 

建立一个maven 项目,然后在pom.xml中添加依赖

 

<!--指定 spring-boot-starter-parent 后面的依赖就不用制定版本号了-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--spring5 整合 thymeleaf-->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
        </dependency>
        <!--使用h2数据库-->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <!--为了支持热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

创建实体类

 

public class Contract {

    private Long id;
    private String firstName;
    private String lastName;
    private String phoneNumber;
    private String emailAddress;


    //getter and setter
}

 

数据库脚本

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

 

  创建数据访问的 ContractRepository 使用的是 spring JDBC 

@Repository
public class ContractRepository {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public ContractRepository(){
        System.out.println(jdbcTemplate);
    }

    public List<Contract> findAll() {
        return jdbcTemplate.query("select * from contract order by lastName", new RowMapper<Contract>() {
            @Override
            public Contract mapRow(ResultSet rs, int i) throws SQLException {
                Contract contract = new Contract();
                contract.setId(rs.getLong(1));
                contract.setFirstName(rs.getString(2));
                contract.setLastName(rs.getString(3));
                contract.setPhoneNumber(rs.getString(4));
                contract.setEmailAddress(rs.getString(5));
                return contract;
            }
        });
    }

    public void save(Contract contract) {
        jdbcTemplate.update("insert into contract(firstName,lastName,phoneNumber,emailAddress)values(?,?,?,?)",
                contract.getFirstName(), contract.getLastName(), contract.getLastName(), contract.getPhoneNumber());
    }
}

 

创建控制器 ContractController

 

@Controller
@RequestMapping("/")
public class ContractController {


    @Autowired
    private ContractRepository contractRepository;

    @RequestMapping(method = RequestMethod.GET)
    public String home(Model model) {
        List<Contract> contracts = contractRepository.findAll();
        model.addAttribute("contracts", contracts);
        return "home";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String submit(Contract contract) {
        contractRepository.save(contract);
        return "redirect:/";
    }

}

 

 

创建视图 。spring boot 建议  使用 thymeleaf 

 

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>spring boot contract</title>
    <!--引入css文件-->
    <link rel="stylesheet" th:href="@{/style.css}"/>
</head>
<body>
<h2>spring boot contract</h2>

<form method="post">
    first Name: <input type=text name="firstName" id="firstName"/><br/>
    lastName: <input type=text name="lastName" id="lastName"/><br/>
    phoneNumber: <input type=text name="phoneNumber" id="phoneNumber"/><br/>
    emailAddress:<input type=text name="emailAddress" id="emailAddress"/><br/>
    <input type="submit" value="submit" />
</form>

<!--遍历List集合-->
<ul th:each="contract:${contracts}">
    <li>
        <span th:text="${contract.firstName}">firstName</span>
        <span th:text="${contract.lastName}">lastName</span>
        <span th:text="${contract.phoneNumber}">phoneNumber</span>
        <span th:text="${contract.emailAddress}">emailAddress</span>
    </li>
</ul>

</body>
</html>

 

 

最后,开发完程序我们需要部署到tomcat中。但是,使用 spring boot 可以直接使用 main方法启动应用。

 

创建项目启动类 Application

 

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

 

 

RUN 此main方法即可启动 spring boot 应用。

 

其中,需要补充的是:

1、在src\main\resources 目录下创建的SQL脚本会自动执行。且脚本名字必须是 schema.sql

2、在src\main\resources\static 目录下作为 静态资源文件的目录

3、可以不需要src\main\webapp 目录,而是将视图(模板)页面放在 src\main\resources\templates 下,spring boot 会自动访问该目录下的视图模板。

 

成功启动后,访问:http://localhost:80808/ 即可看到如下页面:

 



 

有时我们需要修改视图页面,然后想立即看到结果。以前的做法,直接页面F5刷信即可。

但是,这招对spring boot 是不管用的。

 

那怎么实现修改页面立即刷信功能呢?

1、在pom.xml中添加如下依赖

 <!--为了支持热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

 此依赖告诉spring boot 在开发时候支持热部署。(建议开发阶段使用)

 

2、当修改页面后想要立即看到结果需要 make 一下。

具体操作是:点击如下图所示



 

然后,在刷信页面就看到最新的结果了。

 

这个项目结构如下图:



 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 14.9 KB
  • 大小: 10.4 KB
  • 大小: 24.4 KB
分享到:
评论

相关推荐

    Spring Boot快速搭建和部署应用程序

    Spring Boot是一种基于Java的开发框架,旨在简化和加速应用程序的构建过程。它是由Spring团队开发的,构建在Spring框架之上,提供了一种的方式。 Spring Boot的主要特点之一是约定优于配置。通过使用默认的约定,...

    Spring Boot是一个开源的Java框架,旨在简化Spring应用的初始搭建和开发过程 以下是对Spring Boot开发

    Spring Boot是一个开源的Java框架,旨在简化Spring应用的初始搭建和开发过程。以下是对Spring Boot开发的500字资源介绍: Spring Boot由Pivotal团队提供,它集成了众多常用的Spring功能,并进行了大量默认配置,使...

    spring-boot中文教程

    Spring Boot是一款基于Spring框架的快速开发框架,它提供了一系列的开箱即用的功能和组件,可以帮助用户快速搭建Web应用程序、REST服务、批处理任务等。Spring Boot还提供了一些高级特性,例如自动配置、Actuator、...

    spring-boot示例项目

    本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例...多数Spring Boot应用只需要很少的Spring配置。 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Sprin

    Spring Boot2企业应用实战

    Spring Boot遵循“约定优于配置”原则,从而使开发人员不再需要定义样板化的配置,只需要很少的配置,或者大部分时候只是使用默认配置就可以快速搭建项目,无须配置整合第三方框架。

    Spring Boot是一个基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程 以下是对Spring

    Spring Boot是一个基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程。以下是对Spring Boot的500字资源介绍: Spring Boot是一款快速、轻便的Java开发框架,它为Spring应用提供了更加简化的开发...

    spring boot2.0官网中文文档

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

    Spring Boot + druid + nutz应用

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新...看众多开发者玩的这么666忍不住的搭建了一个简单Spring Boot应用。这个应用也是作为公司EDI项目的一个引子,EDI项目也就采用Spring Boot架构。

    Spring boot学习笔记

    大多数Spring Boot应用程序需要最少的Spring配置。 SpringBoot其实就是构建Spring应用程序的“脚手架”,能够帮助我们快速的搭建一个Spring项目,并且尽可能减少XML的配置,做到“开箱即用”,让程序员只需要关注...

    spring boot excel导出

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

    youlai-boot: Spring Boot 3 + Spring Security + Vue3 权限管理系统

    youlai-boot 是【有来开源组织】基于...1. Spring Boot 3.0 + Vue3 前后端分离单体应用,适合快速开发; 2. Spring Security + JWT 认证鉴权方案; 3. 基于 RBAC 模型的权限设计,细粒度接口方法、按钮级别权限控制。

    49道Spring Boot面试题带答案(很全)

    Spring Boot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。Spring Boot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性...

    Spring Boot笔记.md

    Spring Boot 是一个快速开发框架,可以迅速搭建出一套基于 Spring 框架体系的应用,是 Spring Cloud 的基础。 Spring Boot 开启了各种自动装配,从而简化代码的开发,不需要编写各种配置文件,只需要引入相关依赖就...

    《JAVA EE开发的颠覆者 SPRING BOOT实战》高清带书签

    而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 本书从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。...

    JavaEE开发的颠覆者 spring boot实战+电子版+源码

    惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 本书从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用 Spring Boot 进行Java EE 开发的绝...

    spring boot docs API 2.0.1 (CHM格式)

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

    使用 Spring Boot 和 Vue3 搭建的知识库 Wiki 系统.zip

    Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt...适用于初学者和有经验的开发者,能够帮助你快速上手Qt并掌握其高级特性。

    Spring boot工具集

    可以选择使用哪个项目管理工具(maven 以及 Gradle),JVM语言(Java,Groovy,Kotlin),spring boot的版本号。...当然支持spring boot项目的快速搭建。新建工程,选择spring initializer,后续和网页在线版差别不大

    Spring boot 笔记

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

    springboot官方文档(英文版)_javaspringboot外文文献,spring boot 英文文档

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

Global site tag (gtag.js) - Google Analytics