- Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
- 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- 增加Web依赖后执行main方法,等同于启动Tomcat服务器, 默认端口号为8080。
- 修改默认的Tomcat服务器端口号,可以通过全局配置文件进行配置,在src/main/resources/目录中增加
application.properties
(必须叫这个名)文件。- 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
基本的Spring Boot环境已经构建好了,现在需要配置Spring框架及SpringMVC框架的业务环境
默认扫描启动类的同级目录包及其子包
//设置自动扫描的包,如果不设置默认扫描当前类所在的包及其子包
@ComponentScan(basePackages = "com.atguigu.springboot")
@SpringBootApplication
public class SpringBootSelfApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootSelfApplication.class, args);
}
}
@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;
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Override
public Employee getEmployeeById(Integer id) {
//假设根据传入的id从数据库中查询出员工信息
Employee employee = new Employee(id,"张三","[email protected]",10000.00,"开发部");
return employee;
}
}
官方文档:@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-->
<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>
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);
}
@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;
@MapperScan(basePackages = "com.atguigu.mapper")
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
@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;
}
}
localhost:10010/getEmployee?id=1s
会得到数据库中表id为1的json字符串
REST(Representational State Transfer)又被称作表现层状态转换。
- 资源: 所谓资源简单讲就是服务所能提供的数据,可以是实体数据也可是媒体类型,图片、PDF、文本等
- 表现层:何为变现层?简单说就是将数据以某种方式展现给用户,或者给客户返回一张图片等等动作称之为表现,通常是已JSON或XML形式展现数据
- 状态转换:状态转换就是对数据进行一系列的操作,因为资源本身并非一尘不变,随着需求的变化而变化。
- PUT请求和DELETE请求需要通过POST请求来转换
- 发送POST请求我们需要在form表单中发送
自己不能胜任的事情,切莫轻易答应别人,一旦答应了别人,就必须实践自己的诺言。——华盛顿