springboot学习入门总结

       学了几天springboot,给我的感觉就是非常好用,这个技术可以说是烂大街的了,但是其作为第一个出现的微服务框架基础也曾风光无限,时至今日大部分java类公司还使用它作为基本的开发框架,因为好用。

      学习springboot只需要简单地了解spring的基础知识,因为你也不可能用它开发。     

Spring Boot的哲学就是约定大于配置。既然很多东西都是一样的,为什么还要去配置。

       1. 通过starter和依赖管理解决依赖问题。
       2. 通过自动配置,解决配置复杂问题。
       3. 通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。

        Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。springboot用于单体框架,springcloud用于分布式微服务的开发。

下边是三个学习案例:

一:Thymeleaf模板引擎的使用

     Thymeleaf是一个Java类库,他是一个xml/xhtml/html5的模板引擎,可以作为MVC的Web应用层的View层。

1:引入类库


            org.springframework.boot
            spring-boot-starter-thymeleaf
        

2:配置模板

#thymeleaf start
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
#static 文件夹下的静态文件访问路径
spring.mvc.static-path-pattern=classpath:templates/*hello.html
#thymeleaf end

3:建立view

在resources下的templates下新建hello.html



    
    Title


当然这个是玩具版本。

注意:在控制器上不能使用respondbody,否则跳转不过去,返回的是 hello。

springboot学习入门总结_第1张图片

springboot学习入门总结_第2张图片

二:springboot整合mybaties

 

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,
而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中
sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并
返回。
采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我
们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。

这里操作使用mysql数据库!

1:定义起步依赖


        
            mysql
            mysql-connector-java
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.1.1
        
        
            org.mybatis
            mybatis-spring
            1.3.2
        
        
        
            com.baomidou
            mybatis-plus
            2.1.9
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-autoconfigure
            1.3.2
        

2:添加数据库的连接信息

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=1234

3:创建user表

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四')

4:创建实体bean

package com;

import java.io.Serializable;

public class User {
    // 主键
    private Long id;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 姓名
    private String name;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public Long getId() {
        return  id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getPassword(){
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public void setName(String name) {
        this.name = name;
    }
    public  String getName() {
        return  name;
    }
}

5:编写持久层接口mapper

package com;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    public List queryUserList();
}

6:编写mapper的映射文件





springboot学习入门总结_第3张图片

 

7:添加配置文件

#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.mapper
#加载Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
#mybatis.config-location=classpath:mybatis-config.xml

结果展示

三:spring整合jpa

1:添加起步依赖

 
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        

2:配置

#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

3:创建实体

package com;

import org.springframework.data.jpa.repository.JpaRepository;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.List;

//定义映射实体类
@Entity
public class Ppersion {
    // 主键
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 姓名
    private String name;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword(){
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public void setName(String name) {
        this.name = name;
    }
    public  String getName() {
        return  name;
    }

}


4:定义数据访问接口

package com;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

//定义数据访问接口
public interface  PersionRepository extends JpaRepository {
    public List findAll();
}

看下我docker容器里边的数据库!

springboot学习入门总结_第4张图片

 

总的控制器贴出来

package com;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;

//@RestController
@Controller
@RequestMapping(value = "/hello")
public class RunController {

    @Autowired
    private UserMapper MyuserMapper;

    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;
    @RequestMapping(value = "/quick")
    public String say(Model mymodel) {
        //int no = 1/0;
       // throw new MyException("100", "用户密码错误!") ;
        //return "hello world!" + "name =" + name + ",age =" + age ;
        mymodel.addAttribute("name", "Dear");
        return "hello";
    }
    @Autowired
    private PersionRepository  MMPERSION;
    //测试获取全部的数据
    @GetMapping(path="/all")
    @ResponseBody
    public Iterable getAllUsers() {
        return MMPERSION.findAll();
    }
    @RequestMapping("/queryUser")
    @ResponseBody
    public List queryUser(){
        List users = MyuserMapper.queryUserList();
        return users;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

你可能感兴趣的:(JAVA)