springboot学习
一、快速开始
首先从一个最基本的 REST 接口开始:
@RestController
@RequestMapping("/books")
public class BookController {
    
    @GetMapping
    public String getById() {
        return "spring boot is running...";
    }
}启动类配置:
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}二、配置文件使用
SpringBoot支持 yml 和 properties 两种格式的配置文件。以下是一个典型的配置示例:
server:
  port: 8080 
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root //数据库
    password: 123456
# 自定义配置项
book:
  name: SpringBoot实战
  price: 100读取配置的方式:
@RestController
@RequestMapping("/books")
public class BookController {
    
    @Value("${book.name}")
    private String name;
    
    @GetMapping
    public String getBook() {
        return "book name is " + name;
    }
}三、数据库访问
使用 JPA 进行数据库操作:
@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private Double price;
    // getter setter 省略
}数据访问层:
@Repository
public interface BookRepository extends JpaRepository<Book, Integer> {
    List<Book> findByNameLike(String name);
}四、单元测试
服务层测试示例:
@SpringBootTest
class BookServiceTest {
    
    @Autowired
    private BookService bookService;
    
    @Test
    void testGetById() {
        Book book = bookService.getById(1);
        assertNotNull(book);
        assertEquals("SpringBoot实战", book.getName());
    }
}五、SSM整合案例
6.1 数据访问层(DAO)
使用 MyBatis 注解方式实现数据库操作:
@Mapper
public interface BookDao {
    // 新增图书
    @Insert("insert into tbl_book (type,name,description) values(#{type},#{name},#{description})")
    public int save(Book book);
    // 更新图书信息
    @Update("update tbl_book set type = #{type}, name = #{name}, description = #{description} where id = #{id}")
    public int update(Book book);
    // 删除图书
    @Delete("delete from tbl_book where id = #{id}")
    public int delete(Integer id);
    // 根据ID查询
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);
    // 查询所有
    @Select("select * from tbl_book")
    public List<Book> getAll();
}6.2 服务层实现
基于 DAO 层封装业务逻辑:
@Service
public class BookServiceImpl implements BookService {
    
    @Autowired
    private BookDao bookDao;
    
    @Override
    public boolean save(Book book) {
        return bookDao.save(book) > 0;
    }
    
    @Override
    public Book getById(Integer id) {
        return bookDao.getById(id);
    }
    
    @Override
    public List<Book> getAll() {
        return bookDao.getAll();
    }
    
    @Override
    public boolean update(Book book) {
        return bookDao.update(book) > 0;
    }
    
    @Override
    public boolean delete(Integer id) {
        return bookDao.delete(id) > 0;
    }
}6.3 控制层实现
@RestController
@RequestMapping("/books")
public class BookController {
    
    @Autowired
    private BookService bookService;
    
    @PostMapping
    public Result save(@RequestBody Book book) {
        boolean flag = bookService.save(book);
        return new Result(flag, flag ? "添加成功" : "添加失败");
    }
    
    @GetMapping("/{id}")
    public Result getById(@PathVariable Integer id) {
        Book book = bookService.getById(id);
        return new Result(true, book);
    }
    
    @GetMapping
    public Result getAll() {
        List<Book> books = bookService.getAll();
        return new Result(true, books);
    }
}springboot学习
        http://localhost:8090//archives/springbootxue-xi