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依赖】和【数据库驱动依赖】
很自然,要想连接数据库,需要引入数据库相关的依赖:
说明:
(1) 引入的两个依赖说明;
(2) 其实,pom.xml我们前面已经设置为自动更新了;不过,我们也可以点击刷新,让依赖重新导入一下;(这其实没必要,但还是知道一下吧)
(3) 为什么我们引入的MySQL依赖,可以不指定版本号?
参考自【为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?】
当在Springboot项目中引入了spring-boot-starter-parent,则可以不用引入依赖包版本号,比如:
因为它会默认提供常用依赖包的版本号,也有助于统一版本号。如果非要想自己填写版本号也是可以的,这样会覆盖官方版本号(如果是新手,个人建议还是不要随便修改依赖包版本号,免得版本号不兼容)。
接下来,我们看下spring-boot-starter-parent的继承关系就能明白,为什么使用它之后就可以不填依赖包版本号。首先看下它的pom文件: 打开前:
打开后:
打开之后会发现spring-boot-starter-parent还有一个父依赖:spring-boot-dependencies。然后打开这个pom文件之后,会发现这个里面已经有很多常用的带有版本号的依赖包,如:
但是springboot提供官方统一的版本管理之外,还让开发人员自行管理依赖包版本。如果想要自行管理版本,则建议使用dependency management来代替,然后设置jdk,编码格式,各种依赖包等版本号就可以。
3.然后,我们需要在配置文件中,配置一些数据库的相关内容;
说明:
(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是否打通,多少有点随意了;