Java-SpringBoot

一、SpringBoot

  1. Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
  2. 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

二、创建一个SpringBoot

2.1 自动创建(必须联网)

  1. 在Idea中new→Module→Spring Initializr
    Java-SpringBoot_第1张图片
  2. 给工程命名、设置包名等,其他默认即可
    Java-SpringBoot_第2张图片
  3. 选择工程的版本
    Java-SpringBoot_第3张图片
  4. 点击Next ,给工程命名,然后点击Finish
    Java-SpringBoot_第4张图片
  5. 成功
    Java-SpringBoot_第5张图片

2.2 手动创建

  1. 创建一个普通的Maven项目
  2. 修改pom.xml文件,增加Spring Boot框架的依赖关系及对Web环境的支持。
    Java-SpringBoot_第6张图片
  3. Spring Boot项目增加spring-boot-starter-web依赖后,会自动加载web环境配置相关依赖(SpringMVC, Tomcat)
    Java-SpringBoot_第7张图片
  4. 增加启动类,Spring Boot项目中都会有一个以Application结尾的应用类,然后有一个标准的Java入口方法main方法。通过这个方法启动Spring Boot项目,方法中无需放入任何业务逻辑。@SpringBootApplication注解是Spring Boot核心注解
    Java-SpringBoot_第8张图片

2.3 修改Tomcat

  1. 增加Web依赖后执行main方法,等同于启动Tomcat服务器, 默认端口号为8080。
  2. 修改默认的Tomcat服务器端口号,可以通过全局配置文件进行配置,在src/main/resources/目录中增加application.properties(必须叫这个名)文件。
  3. Spring Boot会自动读取src/main/resources/路径或类路径下/config路径中的application.properties文件或application.yml文件。
server.servlet.context-path=/
server.port=10010
server.servlet.session.timeout=60
server.tomcat.max-threads=800
server.tomcat.uri-encoding=UTF-8

Java-SpringBoot_第9张图片

三、集成Spring&SpringMVC

基本的Spring Boot环境已经构建好了,现在需要配置Spring框架及SpringMVC框架的业务环境

3.1 @ComponentScan注解

默认扫描启动类的同级目录包及其子包

//设置自动扫描的包,如果不设置默认扫描当前类所在的包及其子包
@ComponentScan(basePackages = "com.atguigu.springboot")
@SpringBootApplication
public class SpringBootSelfApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootSelfApplication.class, args);
    }
}

Java-SpringBoot_第10张图片

3.2 增加控制器代码

@Controller
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @ResponseBody
    @RequestMapping("/getEmp")
    public Employee getEmployeeById(@RequestParam("id") Integer id){
        //获取Employee对象
        Employee employeeById = employeeService.getEmployeeById(id);
        return employeeById;

Java-SpringBoot_第11张图片

3.3 增加Service层

@Service
public class EmployeeServiceImpl implements EmployeeService {

    @Override
    public Employee getEmployeeById(Integer id) {
        //假设根据传入的id从数据库中查询出员工信息
        Employee employee = new Employee(id,"张三","[email protected]",10000.00,"开发部");
        return employee;
    }
}

3.4 main方法启动应用

Java-SpringBoot_第12张图片

3.5 @Controller 和 RestController区别

官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
表示@RestController等同于@Controller + @ResponseBody,所以上面的代码可以变为:

RestController
//@Controller
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

//    @ResponseBody
    @RequestMapping("/getEmp")
    public Employee getEmployeeById(@RequestParam("id") Integer id){
        //获取Employee对象
        Employee employeeById = employeeService.getEmployeeById(id);
        return employeeById;
    }
}


四、集成通用Mapper

4.1 添加Mybatis和MySQL的依赖

<!--集成通用Mapper-->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.1.5</version>
</dependency>

<!--MySQL-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.48</version>
</dependency>

Java-SpringBoot_第13张图片

4.2 增加Dao层

4.2.1 创建EmployeeMapper

package com.atguigu.mapper;

import com.atguigu.bean.Employee;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

@Repository
public interface EmployeeMapper extends Mapper<Employee> {

    // Employee selectEmployeeById(Integer id);

}

Java-SpringBoot_第14张图片

4.2.2 在Employee类上添加注解

@Component
@Table(name = "employees")
public class Employee {

	@Id
	@Column
	private Integer id;
	@Column
	private String lastName;
	@Column
	private String email;
	@Column
	private Double salary;
	@Column
	private String dept;

Java-SpringBoot_第15张图片

4.2.3 创建数据库表

4.2.4 扫描Mapper

@MapperScan(basePackages = "com.atguigu.mapper")

Java-SpringBoot_第16张图片

4.2.5 在application.properties文件中添加链接数据库的配置

spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Java-SpringBoot_第17张图片

4.3 修改Service层代码

@Service
public class EmployeeServiceImpl implements EmployeeService {

    @Autowired
    private EmployeeMapper employeeMapper;

    @Override
    public Employee selectEmployeeById(Integer id) {
        //调用EmployeeMapper中根据主键获取员工信息的方法
        Employee employee = employeeMapper.selectByPrimaryKey(id);
        // Employee employee = employeeMapper.selectEmployeeById(id);
        return employee;
    }

}

Java-SpringBoot_第18张图片

4.4 执行main方法启动应用

localhost:10010/getEmployee?id=1s
会得到数据库中表id为1的json字符串

Java-SpringBoot_第19张图片

五、REST风格的URL

REST(Representational State Transfer)又被称作表现层状态转换。

5.1 名词

  1. 资源: 所谓资源简单讲就是服务所能提供的数据,可以是实体数据也可是媒体类型,图片、PDF、文本等
  2. 表现层:何为变现层?简单说就是将数据以某种方式展现给用户,或者给客户返回一张图片等等动作称之为表现,通常是已JSON或XML形式展现数据
  3. 状态转换:状态转换就是对数据进行一系列的操作,因为资源本身并非一尘不变,随着需求的变化而变化。

5.2 规定

Java-SpringBoot_第20张图片

5.3 转换PUT请求和DELETE请求

  1. PUT请求和DELETE请求需要通过POST请求来转换
  2. 发送POST请求我们需要在form表单中发送

5.3.1 步骤

  1. 添加Thymeleaf模块
    Java-SpringBoot_第21张图片
  2. 在templates目录下创建index.html页面,添加form表单,请求方式设置为post,表单中设置一个隐藏域,name属性值为_method
    Java-SpringBoot_第22张图片
  3. 配置过滤器:1. 创建一个类继承HiddenHttpMethodFilter,2. 在类上添加@WebFilter
    Java-SpringBoot_第23张图片
  4. 在启动类上添加@ServletComponentScan注解
    Java-SpringBoot_第24张图片
  5. 修改控制器代码
    Java-SpringBoot_第25张图片
  6. 启动
    http://localhost:10010/index访问index.html

六、Life

自己不能胜任的事情,切莫轻易答应别人,一旦答应了别人,就必须实践自己的诺言。——华盛顿

Java-SpringBoot_第26张图片

你可能感兴趣的:(语言基础,spring,boot,spring,mybatis,java)