Python工程师Java之路(t)SpringBoot极速极简入门代码
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python工程师Java之路(t)SpringBoot极速极简入门代码相关的知识,希望对你有一定的参考价值。
文章目录
0、概述
SpringBoot实现数据服务接口
1、使用IDEA创建项目
- Intellij IDEA版本:2021.1
- Spring Boot版本:2.7.5
1、创建项目
2、添加依赖(可选的)
3、初建目录结构
2、代码
浏览器
↑↓
Application(地址、端口localhost:8070
)
↑↓
controller(URL路径、GET和POST方法)
↑↓
service(连接数据库)
↑↓
mapper(发送SQL)
↑↓
数据库
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.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo3</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- controller相关 -->
<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>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 通过注解快速编写JavaBean -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties
server.port=5000
spring.datasource.url=jdbc:mysql://localhost:3306/库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=密码
server.port
配置端口spring.datasource
配置数据库连接
Application
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.mapper")
public class Demo3Application
public static void main(String[] args)
SpringApplication.run(Demo3Application.class, args);
- 启动类上方添加
@MapperScan
注解,指明mapper
包路径
bean
package com.example.demo.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class User
Integer uid;
String name;
- Lombok通过注解来简化JavaBean书写,如:get方法、set方法、构造方法……
@Data
含Getter、Setter、ToString等方法
@AllArgsConstructor
含所有参数的构造器
controller
package com.example.demo.controller;
import com.example.demo.bean.User;
import com.example.demo.service.UserServiceImpl;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Controller
@RestController
@RequestMapping("/school")
public class UserController
// @Autowired自动装载服务类
@Autowired
private UserServiceImpl userServiceImpl;
@RequestMapping("/user")
public String getUser(@RequestParam("uid") Integer i,
@RequestParam("name") String s)
User user = userServiceImpl.getUser(i, s);
return "uid:" + user.getUid() + "\\nname:" + user.getName();
@RequestMapping("/users")
public String getUsers()
// 可变的字符序列
StringBuilder uid_s = new StringBuilder("[");
StringBuilder name_s = new StringBuilder("[");
// 遍历
List<User> users = userServiceImpl.getUsers();
for (int i = 0; i < users.size(); i++)
User user = users.get(i);
Integer uid = user.getUid();
String name = user.getName();
// 追加字符串
uid_s.append("\\"").append(uid).append("\\"");
name_s.append("\\"").append(name).append("\\"");
if (i < users.size() - 1)
uid_s.append(",");
name_s.append(",");
else
uid_s.append("]");
name_s.append("]");
return "\\n" +
" \\"uid\\":" + uid_s + ",\\n" +
" \\"name\\":" + name_s + "\\n" +
"";
@ResponseBody
将controller的方法返回的对象转换为指定的格式,写到response对象的body区
常用来返回JSON或XML数据@RestController
≈@Controller
+@ResponseBody
,可用来返回JSON数据@RequestMapping
可添加在 控制类 或 方法 上,用于建立请求URL和请求处理方法之间的对应关系
value
指定请求URL,method
指定请求方式,默认GET
@RequestMapping(value="/a",method=RequestMethod.GET)
可简写为@RequestMapping("/a")
上面代码 类和方法 叠加URL为/school/user
@RequestParma("uid")
位于 方法参数数据类型 之前,接收请求路径中的键值对
service
package com.example.demo.service;
import com.example.demo.bean.User;
import com.example.demo.mapper.MysqlMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl
// 自动装载 Mapper 接口实现类
@Autowired
MysqlMapper mysqlMapper;
// 传参测试,获取单个用户
public User getUser(Integer i, String s)
return mysqlMapper.selectUser(i, s);
// 获取多个用户
public List<User> getUsers()
return mysqlMapper.selectUsers();
@Service
注解
位于实现类定义语句上方,把该实现类注册成一个组件
该组件常驻内存,默认为单态(即单例,整个服务器进程,该类对象只有一个)@Autowired
注解
位于成员变量(属性)定义语句上方,修饰类的属性
控制器组件会扫描接@Autowired
注解的接口,去内存的常驻组件中寻找适配组件(实现类)
mapper
package com.example.demo.mapper;
import com.example.demo.bean.User;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface MysqlMapper
// 返回单个用户(#传参,字符串不需要引号)
@Select("SELECT #u AS uid,#n AS name")
User selectUser(@Param("u")Integer i, @Param("n")String s);
// 查多个用户
@Select("SELECT 101 AS uid,'Zoe' AS name UNION ALL SELECT 102 AS uid,'Mary' AS name")
List<User> selectUsers();
@Select
注解,位于方法定义语句上方
Mybatis会自动实现JDBC、对应Mapper层接口,并在启动时将该实现类加载到Tomcat容器中
注意:
1、还要在启动类上方添加@MapperScan
,指明mapper
包路径
2、还要在服务层@Autowired
自动装载该实现类@Param
注解:传参给SQL
3、浏览器访问
输入
controller
定义的URL路径
4、附录
英 | 🔉 | 中 |
---|---|---|
starter | ˈstɑːrtər | n. (机器或引擎的)启动装置;adj. 起步时使用的 |
Autowire | n. 自动装配 | |
stereotype | ˈsteriətaɪp | n. 模式化的思想,老一套;公式化人物;铅版; |
stereo type | 定型 | |
wired | ˈwaɪərd | adj. 有线的,联网的;v. 接通(电源);(用电线)连接(wire 的过去式和过去分词) |
wire | ˈwaɪər | n. 金属线;导线;<美>电报;v. 接通(电源);(用电线)接通;用金属线固定 |
boot | buːt | n. 靴子;猛踢;(汽车的)后备箱;v. 猛踢;启动(电脑);在车轮上装制动装置 |
以上是关于Python工程师Java之路(t)SpringBoot极速极简入门代码的主要内容,如果未能解决你的问题,请参考以下文章
Python工程师Java之路(t)SpringBoot部署步骤 java -jar
Python工程师Java之路(t)SpringBoot配置文件
Python工程师Java之路(t)SpringBoot配置文件
Python工程师Java之路(t)SpringBoot配置文件