SpringBoot
SpringBoot
HelloWorld
第一个http接口
@RestControllerpublic class HelloController { @RequestMapping("/hello") public String hello() { return "Hello World"; } }
package com.example.springboot01helloword.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controller@RequestMapping("/hello")public class HelloController { @GetMapping("/hello") @ResponseBody public String hello(){ return "hello world!"; }}
yaml文件赋值
/*@ConfigurationProperties作用:将配置文件中配置的每一个属性的值,映射到这个组件中;告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应*/@Component //注册bean@ConfigurationProperties(prefix = "person")public class Person { private String name; private Integer age; private Boolean happy; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog;}
person: name: qinjiang age: 3 happy: false birth: 2000/01/01 maps: {k1: v1,k2: v2} lists: - code - girl - music dog: name: 旺财 age: 1
配置文件占位符
person: name: qinjiang${random.uuid} # 随机uuid age: ${random.int} # 随机int happy: false birth: 2000/01/01 maps: {k1: v1,k2: v2} lists:- code- girl- music dog: name: ${person.hello:other}_旺财 age: 1
Thymeleaf
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h1>hello</h1><div th:text="${msg}"></div></body></html>
package com.yrz.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController { @RequestMapping("/test") public String test(Model model){ model.addAttribute("msg","hello,springboot"); return "test"; }}
Spring Boot
pom.xml
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-java8time</artifactId> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency></dependencies>
application.yml
spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver web: resources: static-locations: classpath:/templatesmybatis: type-aliases-package: com.yrz.pojo mapper-locations: classpath:mybatis/mapper/*.xml
pojo.User
package com.yrz.pojo;import lombok.*;@Data@NoArgsConstructor@AllArgsConstructorpublic class User { private Long id; private int age; private String username; private String password; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
pojo.Result
package com.yrz.pojo;public class Result<T> { private String msg; private boolean success; private T detail; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public T getDetail() { return detail; } public void setDetail(T detail) { this.detail = detail; } @Override public String toString() { return "Result{" + "msg='" + msg + '\'' + ", success=" + success + ", detail=" + detail + '}'; }}
mapper.UserMapper
package com.yrz.mapper;import com.yrz.pojo.User;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Repository;import java.util.List;@Mapper@Repositorypublic interface UserMapper { @Select("select * from t_user") List<User> findAll(); @Select(value = "select * from t_user where username=#{username}") @Results({ @Result(property = "username",column = "username"), @Result(property = "password",column = "password") }) List<User> findByName(@Param("username") String username); @Insert("insert into t_user (id,username,age,password) values (#{id},#{username},#{age},#{password})") void addUser(User user); @Update("update t_user set username=#{username},age=#{age} where id = #{id}") void updateUser(User user); @Delete("delete from t_user where id = #{id}") void deleteUser(Long id); @Insert("insert into t_user values(#{id},#{username},#{password})") //加入该注解可以保存对象后,查看对象插入id @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id") void regist(User user); @Select("select id from t_user where username=#{username} and password=#{password}") Long login(User user);}
service.UserService
package com.yrz.service;import com.yrz.pojo.Result;import com.yrz.pojo.User;import java.util.List;public interface UserService { boolean addUser(User user); boolean updateUser(User user); boolean deleteUser(Long id); List<User> findUserByName(String username); List<User> findAll(); Result regist(User user); Result login(User user);}
service.UserServiceImpl
package com.yrz.service;import com.yrz.mapper.UserMapper;import com.yrz.pojo.Result;import com.yrz.pojo.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service@Transactional(rollbackFor = RuntimeException.class)public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean addUser(User user) { boolean result = false; try { userMapper.addUser(user); result = true; } catch (Exception e) { e.printStackTrace(); } return result; } @Override public boolean updateUser(User user) { boolean result = false; try { userMapper.updateUser(user); result = true; } catch (Exception e) { e.printStackTrace(); } return result; } @Override public boolean deleteUser(Long id) { boolean result = false; try { userMapper.deleteUser(id); result = true; } catch (Exception e) { e.printStackTrace(); } return result; } @Override public List<User> findUserByName(String username) { return userMapper.findByName(username); } @Override public List<User> findAll() { return userMapper.findAll(); } // 注册 @Override public Result regist(User user) { Result result = new Result(); result.setSuccess(false); result.setDetail(null); try { List<User> byName = userMapper.findByName(user.getUsername()); if (byName != null) { result.setMsg("此用户已存在"); } else { userMapper.regist(user); result.setMsg("注册成功"); result.setSuccess(true); result.setDetail(user); } } catch (Exception e) { result.setMsg(e.getMessage()); e.printStackTrace(); } return result; } // 登录 @Override public Result login(User user) { Result result = new Result(); result.setSuccess(false); result.setDetail(null); try { Long userId= userMapper.login(user); if(userId == null){ result.setMsg("用户名或密码错误"); }else{ result.setMsg("登录成功"); result.setSuccess(true); user.setId(userId); result.setDetail(user); } } catch (Exception e) { result.setMsg(e.getMessage()); e.printStackTrace(); } return result; }}
controller.UserController
package com.yrz.controller;import com.yrz.pojo.Result;import com.yrz.pojo.User;import com.yrz.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;@RestControllerpublic class UserController { @Autowired private UserService userService; @PostMapping("/regist") public Result regist(User user){ return userService.regist(user); } @PostMapping("/login") public Result login(User user){ return userService.login(user); } @GetMapping("/findall") public List<User> findAll(){ return userService.findAll(); } @PostMapping("/adduser") public boolean addUser(@RequestBody User user){ return userService.addUser(user); } @PutMapping("/updateuser") public boolean updateUser(User user){ return userService.updateUser(user); } @DeleteMapping("/deleteuser/{id}") public boolean deleteUser(@PathVariable("id") Long id){ return userService.deleteUser(id); } @GetMapping("/findbyname/{username}") public List<User> findByName(@PathVariable("username")String username){ return userService.findUserByName(username); }}