Springboot2学习笔记(一)

了解Springboot

官方:
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.

上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

其实Springboot最大的优点就是:简单、快速、方便地搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率。

快速搭建Springboot项目

开发工具:Intellij IDEA

所需开发环境:JDK Gradle

image
image
image

注意这里的Artifact只能小写,不然创建不成功。

这里选择管理jar包的是Gradle Project

image

这里选择Spring Web 和JPA,Mysql

image

然后搭建成功,需要等待Gradle下载组件。

image

设置数据源

springboot配置文件默认可以放到以下目录,可以自动读取到:
项目根目录下
项目根目录中config目录下
项目的resources目录下
项目resources目录中config目录下
但读取是有顺序的。

如果在不同的目录中存在多个配置文件,它的读取顺序是:
1、config/application.properties(项目根目录中config目录下)
2、config/application.yml
3、application.properties(项目根目录下)
4、application.yml
5、resources/config/application.properties(项目resources目录中config目录下)
6、resources/config/application.yml
7、resources/application.properties(项目的resources目录下)
8、resources/application.yml
注:
1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下
个人比较喜欢yml文件作为配置文件,比较有层次感。也有人习惯是properties文件。这里只介绍yml文件。

application.yml:

#设置端口号
server:
  port: 15888

#设置数据源
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    username: root
    password: root
  jpa:
#    显示sql语句
    show-sql: true
    database: mysql

配置好配置文件,接下来写实体类

实体类

/**
 * 使用JPA注解配置映射关系
 */
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "student") //@Table来指定和哪个数据表对应;如果省略,默认表名就是该类名的小写:student
public class Students{
    @Id //表示这个属性是数据表中的主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //还是一个自增的主键
    private Integer id;
    @Column(name = "student_name",length = 50) //这是和数据表对应的一个列,可以定义其在数据表中的名字及长度
    private String sname;
    @Column //省略的情况,默认列名就是属性名
    private String ssex;

这里值得注意的是如果你的数据没有设立主键,也没有用@Id注解,项目启动的时候会报错误Not an managed type。一般的数据库都会有主键,注意别进坑。

持久层

JPA中有许多封装好的对数据库进行操作的方法,不需要再写sql语句,而是直接调用其中的方法,就可以完成对数据的操作了。而这时,持久层只需继承JpaRepository类就OK了。

/**
 * 继承JpaRepository来完成对数据库的操作
 * JpaRepository<T,id>,T表示要进行操作的实体类,id表示类的主键的类型
 */
public interface StudentsRepository extends JpaRepository<Students,Integer> {
}

控制层

编写控制层代码来测试一下是否成功。因为没有界面,所以这边直接用@RestController注解来返回json串就好了,把持久层接口自动注入进来,直接调用其中对应的方法。

@RestController
public class StudentsController {

    @Autowired
    StudentsRepository studentsRepository;

    @GetMapping("/students/{id}")
    public Students getStudents(@PathVariable("id") Integer id){
        Students students= studentsRepository.findOne(id);
        return students;
    }
}

页面效果

效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。