一、需求:请求一个url,响应一个json数据

  1、传统方法:创建maven工程》配置springmvc框架、springmvc配置文件、web.xml配置前端控制器》编写controller》部署tomact

  2、springBoot创建maven工程;必须继承spring-boot-stater-parent工程》》编写controller实现业务逻辑》》编写一个启动类,添加main方法;main方法上添加注解@SpringBootApplication》》启动main方法

  3、springBoot功能梳理:springBoot必须是maven工程、、工程必须继承spring-boot-stater-parent工程、、编写Controller 和启动类、、@SpringBootApplication包含@ComponentScan注解   包扫描器、、、启动类必须在所有类方法包的上一层包中(在顶层可以随意指挥下面的所有类)

一、工程继承和依赖都在pom.xml文件中书写
继承
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.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-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
    </dependencies>
二、编写代码
1、编写controller
package cn.zrf.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public Map HelloController(){
        Map map = new HashMap<>();
        map.put("张三","你好");
        return map;
    }
}
2、编写启动器在controller的上级包上书写
package cn.zrf;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

  

二、连接数据库操作;需求:查询数据库中信息并显示在页面上

  1、分析:创建数据库》添加一个表user》使用持久层框架springDataJpa》json、jsp、静态HTML、freemarker静态模板

  2、持久层:添加起步依赖》》创建一个配置文件:必须以application.properties命名、(springboot配置文件就这一个)  配置数据信息》》编写实体类、dao》》编写controller

  3、页面展示:

    a、动态展示:jsp本质上就是servlet;servlet运行在一个servlet容器中;必须是web工程》》需要把工程改变成web工程,打包方式为war包》》需要springBoot中嵌入tomact;比较繁琐一般不用

    b、模板技术:freemarker模板常用;velocity已过时不常用;tymeleaf模板

  4、模板的使用方法:添加起步依赖》》创建模板文件:位置resource/templates目录下并且文件名必须是ftl》》编写controller吧查询的数据传递给模板

  5、静态资源的访问方式:static和templates文件夹下书写静态资源:例、css;js;imges等

一、编写唯一配置文件连接数据库
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=169695

#JPA Configuration:
#spring.jpa.database=MySQL
#spring.jpa.show-sql=true
#spring.jpa.generate-ddl=true
二、编写实体类;用springdatajpa操作
package cn.zrf.entity;

import javax.persistence.*;

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;
    @Column(name = "username")
    private String username;
    @Column(name = "sex")
    private String sex;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}
三、编写dao继承JpaRepository
public interface UserDao extends JpaRepository<User,Integer> {
}
四、编写controller
@RestController
public class ShowUserController {
    @Autowired
    UserDao userDao;

    @RequestMapping("user")
    public List<User> showList(){
        return userDao.findAll();
    }
}

五、编写后缀为ftl的静态页面
<html>
<head>
    <title>SpringBoot</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody>
            <#--list循环-->
            <#list userList as user>
                <tr>
                    <th>${user.id}</th>
                    <th>${user.username}</th>
                    <th>${user.sex}</th>
                </tr>
            </#list>
        </tbody>
    </table>
    <img src="/imges/312495.jpg">
</body>
</html>
六、启动器同上

 

版权声明:本文为zhangrongfei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangrongfei/p/11401110.html