up:: SpringBoot的Value注解

说明:

(1) 本篇博客演示的内容:Spring Boot项目从Controller→Service→Dao数据库;这个链路打通;

(2) 本篇博客的点:

● 关于【为什么我们引入的MySQL依赖,可以不指定版本号?】的问题,参考了博客:【为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?】;

● 和前面的Spring MVC相比,Spring Boot最大的好处就是简化了配置;

● 本篇博客仅仅是粗略演示Spring Boot,其目的主要是验证我们的Spring Boot项目是否OK;所以,本篇博客中的很多地方有点随意;


0.目标;

Spring Boot项目从Controller→Service→Dao数据库;这个链路打通;

1.首先,创建一个数据库逻辑空间,创建一个测试用的表,添加一些测试用的数据;

记得字符集设为utf8mb4;

创建一个student表,并添加一些数据:

2.在pom.xml中,引入【Mybatis依赖】和【数据库驱动依赖】

很自然,要想连接数据库,需要引入数据库相关的依赖:

		<!--mybatis相关的依赖-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.1</version>
		</dependency>
		<!--mysql相关依赖-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

说明:

(1) 引入的两个依赖说明;

(2) 其实,pom.xml我们前面已经设置为自动更新了;不过,我们也可以点击刷新,让依赖重新导入一下;(这其实没必要,但还是知道一下吧)

(3) 为什么我们引入的MySQL依赖,可以不指定版本号?

参考自【为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?

当在Springboot项目中引入了spring-boot-starter-parent,则可以不用引入依赖包版本号,比如:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

因为它会默认提供常用依赖包的版本号,也有助于统一版本号。如果非要想自己填写版本号也是可以的,这样会覆盖官方版本号(如果是新手,个人建议还是不要随便修改依赖包版本号,免得版本号不兼容)。

接下来,我们看下spring-boot-starter-parent的继承关系就能明白,为什么使用它之后就可以不填依赖包版本号。首先看下它的pom文件: 打开前:

打开后:

打开之后会发现spring-boot-starter-parent还有一个父依赖:spring-boot-dependencies。然后打开这个pom文件之后,会发现这个里面已经有很多常用的带有版本号的依赖包,如:

但是springboot提供官方统一的版本管理之外,还让开发人员自行管理依赖包版本。如果想要自行管理版本,则建议使用dependency management来代替,然后设置jdk,编码格式,各种依赖包等版本号就可以。

3.然后,我们需要在配置文件中,配置一些数据库的相关内容;

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.url=jdbc:mysql://localhost:3306/interview?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
     spring.datasource.username=root
     spring.datasource.password=12345

说明:

(1) 解释如下;

(2) 很容易发现,我们在SSM项目中,想要使用数据库,需要大量的配置;

但是,在Spring Boot项目中,我们只需要在application.properties文件中,简单配置一下就OK了;;;可以感受到,Spring Boot在背后做了大量的工作

4.确保我们已经创建了与表对应的实体类,并且其属性与表字段对应;

5.开发Dao层,创建StudentMapper接口;

说明:

(1) 关于@Repository注解,很容易理解:

● 首先,第一遇到是在【四种注解类型】:该注解最开始的作用是,Spring框架中,用在Dao类上,以使得IoC容器也能管理这个类对象;

● 而,我们的Mybatis中,Dao类其实就是Mapper接口;

● 那么,为什么在Mybatis和Spring整合项目中,我们的Mapper接口上,不使用@Repository注解呐:这是因为,我们设置了去扫描Mapper接口,其会自动实例化该接口的对象,并通过IoC容器管理起来;如果需要可以参考【彻底搞懂使用MyBatis时为什么Dao层不需要@Repository】;

● 而,这儿我们仅仅是演示一下,主要目的是是看我们的Spring Boot项目是否OK;;;所以,这儿使用了这个注解;以后在Spring Boot项目中,会进一步介绍;

(2) 关于@Mapper注解:这个注解是第一次遇到的:

(3) 直接在方法上使用@select注解是Mybatis注解开发的内容,可以参考【MyBatis常用注解】;Mybatis注解开发的方式,在实际工作中很少遇到哎;

6.开发Service层,创建StudentService类;

7.开发Controller层,创建StudentController类;

说明:

(1) 如果对上面使用的注解有疑问,可以参考【SpringBoot的Get请求和Post请求】 ;

(2) 自己开发中,使用注解时,最好使用当下最被接收的风格;而不要太随意;这儿为了演示Spring Boot是否打通,多少有点随意了;

8.启动程序,访问:结果OK;