面向解决问题的java编程,spring boot,mybatis generator和坑

您所在的位置:网站首页 pomxml是干嘛的 面向解决问题的java编程,spring boot,mybatis generator和坑

面向解决问题的java编程,spring boot,mybatis generator和坑

#面向解决问题的java编程,spring boot,mybatis generator和坑| 来源: 网络整理| 查看: 265

1、start一个spring boot项目

第一课我们也不能免俗,要从starter开始,spring boot的起始项目脚手架可以从spring boot官方starter生成地址开始:https://start.spring.io/

面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

    这张图列出了一个spring boot项目的几个基本信息,我们大略的说一下:

    面向解决问题的java编程,spring boot,mybatis generator和坑-1starter maven是用来干嘛的呢,它解决了什么问题?是的,我们用的任何技术都是为了解决问题的,在java application的上古时代,我们的项目都是要把依赖的jar包包含在工程项目中的,所以一个项目会变的很大,哪怕你的项目改动很小,但一个完整的项目都需要带上这一堆jar包才能的拷贝给你的同事,一个哪怕几十K 源码的项目,要给到别人,都需要几十M,这是对网络传输带宽的巨大浪费。而且jar包之间会有各种依赖关系,所谓的jar hell在那个年代可以名副其实的噩梦,不同的jar引用不同版本的依赖jar,总有一款版本冲突搞死你,所以maven出现了,它统一管理jar和它的依赖关系,另外,提供公用的jar下载地址,称为maven repository,这样项目之间的传递就不需要带上jar包了,只需要把代码和配置文件传过去就可以了,项目体积大幅缩小。当然,maven还为各种项目自己的jar包提供了私有repository,还可以打包项目,运行项目等等等等,它可以解决很多工程上的管理部署问题,所以它的存在就变得很有必要了。有空我们再讲maven,我觉得maven的坑也是陨石级别的,又多有深。

    面向解决问题的java编程,spring boot,mybatis generator和坑-1starter这两样东西仍然是和maven相关的,group的本意是代表公司组织的名称,但因为很多项目本身的package都是com.XXX形式,本身就代表了公司组织,所以我们一般都变成了包名的开始部分。Artifact可以认为是Maven构建的项目名,所以group和artifact的组合一般就成了包名的共通部分。

面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

    spring boot的便利之处就在这里,我们引入我们需要的工具,框架的时候,不需要一个一个的jar包引入,而是可以整体引入,它自动会引入依赖包。点击

面向解决问题的java编程,spring boot,mybatis generator和坑-1starter就会下载一个基础的项目了。

2、看看项目的结构

面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

这个截图我用的是eclipse,但结构是典型的maven项目的结构。

src/main/java存放代码 src/main/resource下面存放配置文件、静态文件(static)和模板文件(templates),templates并不是maven的默认创建的目录,而是spring boot自行创建的,后面如果我们用thymeleaf的话,会把模板文件放在templates。 scr/test/java就是放测试代码的地方 target是我们的代码编译后的class文件和打包后的jar包、war包生成的地方 最外面的是pom.xml文件,就是maven的配置啦(请忽略上面的红点,这是我eclipse的问题)

    现在,我们需要做的第一件事就是运行src/main/java下面的Lesson1Application,把项目跑起来。

3、坑

    其实如果你直接运行是跑不起来的,报错信息如下:

    

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-05-23 12:39:03.599 ERROR 19220 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

原因是我们虽然还没有用到数据库,但我们在pom.xml里面引入了mybatis:

org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.1

只要用到了mybatis-spring-boot-starter,哪怕还没有任何访问数据库的动作,但应用也会去找数据库的配置,如果没找到,就会报错,解决的办法就是把数据库的配置在application.properties里面加上:

spring.datasource.driver=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost/ry?useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root

但其实很不幸,还是可能报错,因为我虽然引入了配置,但我用的mysql本身的依赖包并没有:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-05-23 13:34:18.286 ERROR 14588 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource: Property: driverclassname Value: com.mysql.cj.jdbc.Driver Origin: "driverClassName" from property source "source" Reason: Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader or Thread context classloader Action: Update your application's configuration

我们只能再次打开pom.xml,引入mysql的jdbc driver依赖包:

mysql mysql-connector-java runtime

或者在开始的start.spring.io页面,就直接把mysql的jdbc driver 包加上,效果是一样的

面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

这下再运行Lesson1Application,就不会再有问题了。

虽然现在没有问题了,但数据库链接的问题其实还有各种坑等着我们,后面我们讲多数据源配置的时候,再跳一次坑,继续讲。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3