IDEA+Gradle+SpringBoot+SpringDataJPA+lambok(lombok有点问题)(一)
2017-09-13 17:08
609 查看
最近想学习一下SpringBoot,然后顺带的加了几个框架。
具体框架什么意思就不介绍了,百度即可。
打开IDEA,新建Gradle项目
![](https://img-blog.csdn.net/20170913170009546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
选择jdk,点击下一步
![](https://img-blog.csdn.net/20170913170042121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这里解释一下什么是GroupId,ArtifactId,Version。
GroupId:这里一般对应的是项目的组织结构,比如com.test.*,一般两级
ArtifactId:对应的则是项目的名称
Version:则是版本
这三种规定都是为了能够在版本库中找到我们的项目,类似Maven仓库中依赖的定义。
![](https://img-blog.csdn.net/20170913170850762?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
选择本地Gradle,配置好JVM,点击确定,完成Gradle项目的创建。
![](https://img-blog.csdn.net/20170913171527335?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
创建如上包目录结构,这里注意 IDEA包颜色是有要求的 不同颜色的文件夹存放不同类型的资源。
Application.class主要是我们SpringBoot的启动类,里面包含一个main方法,直接Run就好,SpringBoot内置集成了Tomcat,但是这个文件最好放在最外层,因为在启动后,系统将默认扫描启动类同级目录和下级子目录内的文件,如果类不在,可能无法被Spring托管。
resources里面的application.yml主要定义了一些数据库连接信息,使用yml文件可以提高开发效率,名字不要起成其他的了,不然无法发挥作用。
下面我们从build.gradle中进行入手,在这里只是为了SpringBoot服务,不在于讲解build.gradle的配置,其实我也不太懂,具体配置
复制的时候不要把groupId和version也复制上去了,这里主要是导入jar包,值得一提的就是,ext那里,不加的话会发生Hibernate版本冲突,导致项目无法运行,这里采用了阿里云的MAVEN仓库,提高了一下下载速度。
下面开始配置连接,主要是在yml文件里面配置,很常用的配置,只是yml文件里面的语法需要注意一下,这一步,需要记得把上面的依赖先下载下来,之前我一个一个添加的时候,没有加载mysql的jar包,结果在配置数据源的时候一直报红,还有就是行之间的空格不要随便加
![](https://img-blog.csdn.net/20170913172929663?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接下来就是Application.class的配置了,同样很简单
右键,run就行了,这时候,SpringBoot就应该跑起来了,这里的坑就是之前说到的那个问题,它只会扫描同级目录和同级目录下的子目录,当然,如果你没有dao,service等其他层的话,自然不存在这些问题。
下面我们配置一下实体。
![](https://img-blog.csdn.net/20170913173241836?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
@Entity @ID @GeneratedValue 这里都是Hibernate里面的东西,标志它是实体,主键,以及主键的增长策略,而@Data,则是LomBox里面的注解,有了它,我们不必再写set,get方法,还有equlas,toString等一些方法,这个是在类上注解的,同时LomBox还有@Setter:注解在属性上;为属性提供 setting 方法,@Getter:注解在属性上;为属性提供 getting 方法, @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法,@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法,具体还有一些可以自行百度。
然后我们再次运行可以发现数据库中已经为我们自动建好了Test表及响应的字段。
然后新建ITestDao.interfence继承JpaRepository,泛型填写 Test,Integer,例如
![](https://img-blog.csdn.net/20170913174237364?watermark/2/text/<br/>4000<br/>aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后新建Controller
![](https://img-blog.csdn.net/20170913175021785?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注入接口,调用,使用Spring Data Jpa,可以很便捷的我们生成了大量的模板方法,我们只要调用就可以了,说到这,导入jar包的时候注意看清是spring-boot-starter-data-jpa,不要导入springdatajpa的依赖了
,还有在yml文件那里ddl-auto,有好几种策略,我们刚开始选的是Create,每次执行都会创建,我们还是换成Update吧,这样我们在数据库表格中的数据不会因为重新建表而丢失,下面,我们往数据库里面加几条数据,来测试一下吧。
发现加上@Data 数据无法查看出,先去掉,使用自动生成get set验证
![](https://img-blog.csdn.net/20170913181323611?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V5YW5nNTg2MzYzNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
成功查出,来看看这个Lombox和springBoot在一块使用为啥会产生那个问题
具体框架什么意思就不介绍了,百度即可。
打开IDEA,新建Gradle项目
选择jdk,点击下一步
这里解释一下什么是GroupId,ArtifactId,Version。
GroupId:这里一般对应的是项目的组织结构,比如com.test.*,一般两级
ArtifactId:对应的则是项目的名称
Version:则是版本
这三种规定都是为了能够在版本库中找到我们的项目,类似Maven仓库中依赖的定义。
选择本地Gradle,配置好JVM,点击确定,完成Gradle项目的创建。
创建如上包目录结构,这里注意 IDEA包颜色是有要求的 不同颜色的文件夹存放不同类型的资源。
Application.class主要是我们SpringBoot的启动类,里面包含一个main方法,直接Run就好,SpringBoot内置集成了Tomcat,但是这个文件最好放在最外层,因为在启动后,系统将默认扫描启动类同级目录和下级子目录内的文件,如果类不在,可能无法被Spring托管。
resources里面的application.yml主要定义了一些数据库连接信息,使用yml文件可以提高开发效率,名字不要起成其他的了,不然无法发挥作用。
下面我们从build.gradle中进行入手,在这里只是为了SpringBoot服务,不在于讲解build.gradle的配置,其实我也不太懂,具体配置
group 'com.gy.myacc' version '1.0-SNAPSHOT' apply plugin: 'java' apply plugin: 'war' apply plugin: 'spring-boot' apply plugin: "idea" sourceCompatibility = 1.8 buildscript { repositories { mavenLocal() mavenCentral() } dependencies{ classpath ("org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE") } } jar{ baseName = 'mySpringBoot' version = '0.0.1' } repositories { maven{ url "http://maven.aliyun.com/nexus/content/groups/public" } } ext['hibernate.version'] = '5.0.7.Final' dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-data-jpa") compile("mysql:mysql-connector-java") compile group: 'org.projectlombok', name: 'lombok', version: '1.16.18' }
复制的时候不要把groupId和version也复制上去了,这里主要是导入jar包,值得一提的就是,ext那里,不加的话会发生Hibernate版本冲突,导致项目无法运行,这里采用了阿里云的MAVEN仓库,提高了一下下载速度。
下面开始配置连接,主要是在yml文件里面配置,很常用的配置,只是yml文件里面的语法需要注意一下,这一步,需要记得把上面的依赖先下载下来,之前我一个一个添加的时候,没有加载mysql的jar包,结果在配置数据源的时候一直报红,还有就是行之间的空格不要随便加
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/girl username: root password: 123456 jpa: hibernate: ddl-auto: create show-sql: true server: port: 8081
接下来就是Application.class的配置了,同样很简单
@SpringBootApplication public class Appliction { public static void main(String args[]){ SpringApplication.run(Appliction.class,args); } }
右键,run就行了,这时候,SpringBoot就应该跑起来了,这里的坑就是之前说到的那个问题,它只会扫描同级目录和同级目录下的子目录,当然,如果你没有dao,service等其他层的话,自然不存在这些问题。
下面我们配置一下实体。
@Entity @Data public class Test { @Id @GeneratedValue private Integer id; private String test; }
@Entity @ID @GeneratedValue 这里都是Hibernate里面的东西,标志它是实体,主键,以及主键的增长策略,而@Data,则是LomBox里面的注解,有了它,我们不必再写set,get方法,还有equlas,toString等一些方法,这个是在类上注解的,同时LomBox还有@Setter:注解在属性上;为属性提供 setting 方法,@Getter:注解在属性上;为属性提供 getting 方法, @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法,@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法,具体还有一些可以自行百度。
然后我们再次运行可以发现数据库中已经为我们自动建好了Test表及响应的字段。
然后新建ITestDao.interfence继承JpaRepository,泛型填写 Test,Integer,例如
然后新建Controller
注入接口,调用,使用Spring Data Jpa,可以很便捷的我们生成了大量的模板方法,我们只要调用就可以了,说到这,导入jar包的时候注意看清是spring-boot-starter-data-jpa,不要导入springdatajpa的依赖了
,还有在yml文件那里ddl-auto,有好几种策略,我们刚开始选的是Create,每次执行都会创建,我们还是换成Update吧,这样我们在数据库表格中的数据不会因为重新建表而丢失,下面,我们往数据库里面加几条数据,来测试一下吧。
发现加上@Data 数据无法查看出,先去掉,使用自动生成get set验证
成功查出,来看看这个Lombox和springBoot在一块使用为啥会产生那个问题
相关文章推荐
- IDEA+gradle+spring+springMVC+hibernate+JPA+SpringData的web项目
- SpringBoot连接SQLite数据库(基于Spring-Data-Jpa和Gradle配置)
- intellij idea + spring boot + spring data jpa + druid + maven + mysql + thymeleaf
- 使用 spring data jpa 时,单向OnetoOne问题
- 搭建Springboot框架,并添加JPA和Gradle组件
- 关于springBoot项目在IDEA中热部署问题
- SpringBoot+gradle+idea实现热部署和热加载
- spring-boot、spring-data-jpa、hibernate整合
- Spring boot结合Spring-Data-JPA操作MySQL数据库
- idea使用gradle搭建SpringBoot
- spring boot(五):spring data jpa的使用
- 在Spring Boot中使用Spring-data-jpa实现分页查询
- SpringBoot操作之Spring-Data-Jpa(二)CRUD实现
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- 在spring Boot中使用Spring-data-jpa操作数据库
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- SpringBoot第二讲 利用Spring Data JPA实现数据库的访问(二)_分页和JpaSpecificationExecutor接口介绍
- maven开发springboot+jpa(Spring-data)
- (二十三)IDEA 构建一个springboot工程,以及可能遇到的问题
- Spring Data JPA例子[基于Spring Boot、Mysql]