【黑马程序员】从零学起1-springboot整合篇

合集下载

快速搭建一个SpringBoot项目(纯小白搭建教程)

快速搭建一个SpringBoot项目(纯小白搭建教程)

快速搭建⼀个SpringBoot项⽬(纯⼩⽩搭建教程)⽬录零、环境介绍⼀、⼿把⼿创建1.创建步骤2.启动类和测试编写2.1 项⽬结构2.2 创建启动类DemoApplication2.3 测试⼆、依赖⼯具创建零、环境介绍环境:jdk1.8及以上,maven,Win10,IDEA,⽹络⼀、⼿把⼿创建请求创建在启动类所在的包⾥⾯,才能顺利启动1.创建步骤看图,有⼿就⾏之后得到的就是⼀个maven项⽬,⽬录结构如下:之后添加依赖,springboot的核⼼依赖。

SpringBoot提供了⼀个名为spring-boot-starter-parent的构件,⾥⾯已经对各种常⽤依赖(并⾮全部)的版本进⾏了管理,我们的项⽬需要以这个项⽬为⽗⼯程,这样我们就不⽤操⼼依赖的版本问题了,需要什么依赖,直接引⼊坐标即可!<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 https:///xsd/maven-4.0.0.xsd"><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><modelVersion>4.0.0</modelVersion><!--本机JDK版本--><properties><java.version>11</java.version></properties><!--⽗类依赖--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version><relativePath/> <!-- lookup parent from repository --></parent><!--web启动器依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>需要注意的是,我们并没有在这⾥指定版本信息。

【黑马程序员】Spring Boot介绍和使用

【黑马程序员】Spring Boot介绍和使用

【黑马程序员】Spring Boot介绍和使用简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

Spring Boot是一种简化原有Spring应用繁杂配置的微框架。

使开发者从繁杂的各种配置文件中解脱出来,通过Spring Boot能够很简单、很快速构建一个优秀的、产品级的Spring基础应用。

运行Spring Boot和运行普通的Java 类一样简单,仅仅run一下Spring Boot的入口main()方法即可开启应用;你也可以把Spring Boot应用打成jar,在命令行执行java -jar xxx.jar命令来运行;或者打成war包部署到服务器下运行服务器来开启应用。

Spring Boot微框架考虑到了Spring平台和第三方库的情况,所以你需要做的则是最少的操作或配置。

Spring Boot的特点:1. 创建独立的Spring应用程序2. 嵌入的Tomcat,无需部署WAR文件3. 简化Maven配置4. 自动配置Spring5. 绝对没有代码生成并且对XML也没有配置要求Spring boot的使用1.在ide中打开工程,这里使用的ide是idea,工程的目录结构为:2、maven配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd /maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.springboot.sample</groupId><artifactId>spring-boot-sample</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>spring-boot-sample</name><description>Spring Boot Sample Web Application</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.2.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- MYSQL --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- Spring Boot JDBC --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>3.配置好了pom后,我们一起看下自动生成的Application.java这个类相当于我们程序的main函数入口@SpringBootApplication@ServletComponentScanpublic class SpringBootApplication extends SpringBootServletInitializer {private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class);public static void main(String[] args) {SpringApplication.run(SpringBootSampleApplication.class, args);}}。

【黑马程序员】SpringBoot应用Docker化

【黑马程序员】SpringBoot应用Docker化

【黑马程序员】SpringBoot应用Docker化概述当下web服务端开发中最火的名词中绝对有微服务的一席之地,其也成为当下互联网后端服务架构演进历程中最闪亮的技术之一。

微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。

在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。

既然服务被分割和微小化了,我们很容易想到如果将其和docker结合,让docker承载着一个个的微服务运行,如此一来将会让服务间耦合度降低,部署简洁,同时系统的架构也更加清晰,便于长期演进,基于此想法有了这篇文章的入门实践!创建基于maven的spring bt项目pom.xml中加依赖:[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>18 19 20</dependency> </dependencies>我们只需要在启动类中添加一个简单的restful接口就行了,为了后续浏览器能验证一下,访问/hello接口,能向浏览器返回一个Hello Docker!的问好![AppleScript] 纯文本查看复制代码?123 04 05 06 07 08 09 1 0 1 1 1 2@RestControllerpublic class DockerDemoSpringApplication {public static void main(String[] args) {SpringApplication.run(DockerDemoSpringApplication.c lass, args);}@RequestMapping("/hello")public String hello(){return "Hello! Docker!”;}}编写Dockerfile我们在Spring Bt项目的根目录下建立Dockerfile,用起来完成Docker镜像构建的编排:[AppleScript] 纯文本查看复制代码?0 1 0 2 0 3 0 40 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8FROM maven:3.3.3ADD pom.xml /tmp/build/RUN cd /tmp/build && mvn -q dependency:resolveADD src /tmp/build/src#构建应用RUN cd /tmp/build && mvn -q -DskipTests=true package \#拷贝编译结果到指定目录&& mv target/*.jar /app.jar \#清理编译痕迹&& cd / && rm -rf /tmp/buildVOLUME /tmpEXPOSE 8080ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar ”]进入Docker的世界在Spring项目根目录下根据Dockerfile来生成docker镜像[AppleScript] 纯文本查看复制代码?1`docker build -tspringindocker .`[align=left][color=#004000][backcolor=transparent][ font=微软雅黑][size=14px]从刚创建的镜像来启动容器打开浏览器,或者使用curl 访问http://127.0.0.1:8080就可以看到web服务器里返回的Hello Docker!!!问好的字符了至此就说明你成功将一个基于Spring Boot 的应用Docker 化了。

黑马程序员spring知识总结技术帖

黑马程序员spring知识总结技术帖

S p r i n g框架一、技术说明(技术介绍,技术优势以及发展史等)1.1、什么是spring●Spring是分层的JavaSE/EE full-stack 轻量级开源框架分层:三层体系结构,为每一个层都提供解决方案web层:struts2、spring-mvcservice层:springdao层:hibernate、mybatis、jdbcTemplate(spring)轻量级:使用时占用资源少,依赖程序少。

比较:EJB1.2、spring由来Expert One-to-One J2EE Design and Development ,介绍EJB,使用,特点Expert One-to-One J2EE Development without EJB ,不使用EJB,spring思想1.3、spring核心●以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程为内核)1.5、spring体系结构●spring 核心功能:beans、core、context、expression二、环境搭建(技术开发环境)2.1、获取Spring framework jar 包1、spring官网下载下载完成后会发现三个目录,命名很明确。

Docs 目录相关文档。

包括一份API 和一份各种spring 的使用说明(reference),reference 提供了HTML.PDF 版本,非常详细。

2.spring包的核心包搭建第一个用到spring 依赖注册的程序直接用eclipse 建立一个JAVA 项目然后添加spring 的jar 包引入注:和hibernate 一起用时这个JAR 会冲突,解决方法删掉它就是了Caused by:除此之外,还有需要一个Apache common 的JAR 包3. 配置XMLSpring 的最大的作用就是提供bean 的管理功能,在spring 中bean 的管理是通过XML 实现的,要用此功能,需要把bean 配置到spring 的xml1. 新建立一个xml.名字任意,如applicationContext.xml,或者text.xml 都可以<xml version="1.0" encoding="utf-8">①②③"><bean> </bean> </beans>②schemaLoacation .用于绑定命名空间的schema 文件,通常是用URL 值对,中间用空格隔开,前面URL 是命名空间,后面URL 为schema 的文件地址③xsd 的存放地址,如果没有声明,eclipse 会去网上下载.在创建xml 时,在eclipse 编辑xml 配置没有提示。

SpringBoot整合liquibase及liquibase生成初始化脚本的方式

SpringBoot整合liquibase及liquibase生成初始化脚本的方式

SpringBoot整合liquibase及liquibase⽣成初始化脚本的⽅式⽬录⼀. SpringBoot集成liquibase⼆. liquibase⽣成数据库表和数据的初始化脚本⼀. SpringBoot集成liquibase项⽬集成liquibase作⽤1. 对数据库表字段进⾏版本控制2. 项⽬初始化部署时初始化数据库表和数据①.导⼊pom依赖<dependency><groupId>org.liquibase</groupId><artifactId>liquibase-core</artifactId></dependency>②.配置application.yml⽂件,指定master.xmlspring:liquibase:change-log: classpath:liquibase/master.xml #指定master.xml⽂件的位置不同spring版本配置⽅式不⼀样具体看源码LiquibaseProperties中配置③.新建master.xml⽂件⽤于中指定数据库初始化脚本的位置<?xml version="1.0" encoding="utf-8"?><databaseChangeLogxmlns="/xml/ns/dbchangelog"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/dbchangelog/xml/ns/dbchangelog/dbchangelog-3.4.xsd"><include file="classpath:liquibase/change_log/init_table.xml" relativeToChangelogFile="false"/><include file="classpath:liquibase/change_log/init_data.xml" relativeToChangelogFile="false"/></databaseChangeLog>④.将数据库表初始脚本init_table.xml和数据初始脚本init_data.xml放到项⽬⽬录下脚本可以通过⼿写的⽅式或者通过liquibase⾃动⽣成;启动项⽬如果第⼀次运⾏则会在数据库中创建表和数据后⾯如果脚本中有新增表或者字段启动项⽬的时候也会⾃动创建⽣成⼆. liquibase⽣成数据库表和数据的初始化脚本liquibase有两种⽅式⽣成初始化脚本⽅法⼀:在liquibase压缩包,使⽤原⽣的命令⾏指令来⽣成下载liquibase压缩包,解压,将mysql连接jar包复制⼀份到此⽬录下进⼊解压⽬录执⾏如下执⾏根据数据库⽣成表结构⽂件./liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=./init-data.xml --url="jdbc:mysql://192.168.0.162:3306/hello_world" --username=root --password=123456 --diffTypes=data generateChangeLog 根据数据库⽣成初始数据⽂件./liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=./init-table.xml --url="jdbc:mysql://192.168.0.162:3306/hello_world" --username=root --password=123456 generateChangeLog 数据库驱动取决于数据库–driver=com.mysql.cj.jdbc.Drivermysql连接–classpath=mysql-connector-java-8.0.17.jar⾃定义⽣成的初始化脚本⽂件名–changeLogFile=./init-data.xml数据库连接地址–url=“jdbc:mysql://192.168.0.162:3306/hello_world”数据库⽤户名密码-username=root–password=123456⽣成初始化表数据需要加上这个配置,⽣成表结构则不加-diffTypes=data⽅法⼆:使⽤Maven插件<plugin><groupId>org.liquibase</groupId><artifactId>liquibase-maven-plugin</artifactId><version>3.4.2</version><configuration><changeLogFile>${basedir}/src/main/resources/liquibase/change_log/changelog.xml</changeLogFile><!--changelog⽂件⽣成位置--><outputChangeLogFile>${basedir}/src/main/resources/liquibase/change_log/changelog.xml</outputChangeLogFile><!--数据库连接--><driver>com.mysql.jdbc.Driver</driver><url>jdbc:mysql://192.168.0.30:3306/school</url><username>qj</username><password>123456</password><!--输出⽂件编码--><outputFileEncoding>UTF-8</outputFileEncoding><!--执⾏的时候是否显⽰详细的参数信息--><verbose>true</verbose><!--连接⾮本地数据库是否弹出提⽰框--><promptOnNonLocalDatabase>false</promptOnNonLocalDatabase><!--⽣成changelog⽂件内容--><diffTypes>tables, views, columns, indexs,foreignkeys, primarykeys, uniqueconstraints, data</diffTypes></configuration></plugin>如果只是⽣成数据库表脚本,则将上⾯的diffTypes注释起来或者去掉⾥⾯的data如果只是⽣成数据脚本,则只留下data如果要把数据表脚本和数据脚本⽣成到⼀个⽂件则保留上⾯的difftypes所有内容安装好maven插件后maven插件中可以看如下图的指令,点击即可⽣成脚本⽂件⽣成脚本如下<?xml version="1.0" encoding="UTF-8" standalone="no"?><databaseChangeLog xmlns="/xml/ns/dbchangelog" xmlns:ext="/xml/ns/dbchangelog-ext" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/dbchan <changeSet author="404997819 (generated)" id="1590732067909-4"><createTable tableName="t_student"><column autoIncrement="true" name="studentId" remarks="学⽣⾃增ID" type="INT"><constraints primaryKey="true"/></column><column name="classId" remarks="班级ID" type="INT"/><column name="userCode" remarks="⽤户唯⼀码" type="VARCHAR(20)"/><column name="studentName" remarks="学⽣姓名" type="VARCHAR(20)"/><column name="studentImageUrl" remarks="学⽣头像地址" type="VARCHAR(200)"/><column name="studentCode" remarks="学⽣学号" type="VARCHAR(50)"/><column name="IDCard" remarks="⾝份证号" type="VARCHAR(50)"/><column name="status" remarks="学⽣状态 1:在读 0:毕业 -1:转校" type="VARCHAR(5)"/><column name="flag" remarks="是否删除 1:正常显⽰,-1:表⽰删除" type="VARCHAR(10)"/><column name="createDate" remarks="创建时间" type="datetime"/></createTable></changeSet><changeSet author="404997819 (generated)" id="1590732067909-6"><createTable tableName="t_teacherRelation"><column autoIncrement="true" name="teacherRelationId" remarks="主键⾃增ID" type="INT"><constraints primaryKey="true"/></column><column name="classId" remarks="班级ID" type="INT"/><column name="teacherId" remarks="教师ID" type="INT"/><column name="teacherType" remarks="教师类型 1:班主任" type="VARCHAR(10)"/><column name="flag" remarks="是否删除 1:正常显⽰,-1:表⽰删除" type="VARCHAR(10)"/><column name="createDate" remarks="创建时间" type="datetime"/></createTable></changeSet><changeSet author="404997819 (generated)" id="1590732067909-10"><createIndex indexName="Reft_userinfo88" tableName="t_api_logs"><column name="apiToken"/></createIndex></changeSet></databaseChangeLog>到此这篇关于SpringBoot整合liquibase的⽂章就介绍到这了,更多相关SpringBoot整合liquibase内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

SpringBoot菜鸟教程(一)

SpringBoot菜鸟教程(一)

SpringBoot菜鸟教程(一)SpringBoot菜鸟教程(一)一、什么是Spring Boot?1. 简化配置:Spring Boot利用一套默认的约定来实现自动配置,开发者可以少写大量的代码和配置,从而提高开发效率。

2. 内嵌服务器:Spring Boot可以将Tomcat、Jetty等Web服务器嵌入到应用程序中,无需手动配置。

3. 自动装配:Spring Boot会自动根据应用程序的依赖关系,自动装配相应的组件,无需手动配置。

4. 独立运行:Spring Boot应用程序可以以独立的形式运行,不再需要部署到外部服务器。

二、Spring Boot的快速入门1. 环境搭建:首先,需要确保Java和Maven已经安装好。

然后,创建一个新的Maven项目。

2. 引入依赖:在pom.xml文件中添加Spring Boot的依赖。

例如,可以添加spring-boot-starter-web依赖,用于搭建Web应用。

4. 运行程序:在命令行中切换到项目根目录,执行mvn spring-boot:run命令,即可启动Spring Boot应用程序。

5. 测试接口:通过浏览器或者Postman等工具,访问定义的API接口,检查返回的结果。

三、Spring Boot的应用场景1. Web应用:Spring Boot集成了Web开发所需的各种组件,可以用于快速搭建RESTful API、后台管理系统等Web应用。

2. 批处理应用:Spring Boot提供了Spring Batch模块,用于处理大量数据的批量处理任务。

3. 集成应用:Spring Boot可以轻松地集成各种数据库、消息队列、引擎等外部系统,用于构建复杂的集成应用。

4. 微服务:Spring Boot支持使用Spring Cloud构建分布式微服务架构,从而实现高可用、可扩展和可维护的系统。

四、Spring Boot的优势1. 简化开发:Spring Boot提供了默认的配置和约定,大大减少了开发者的工作量,从而提高了开发效率。

springboot多模块分层开发、改造(搭建、运行、打包)

springboot多模块分层开发、改造(搭建、运行、打包)

springboot多模块分层开发、改造(搭建、运⾏、打包)1.情景展⽰ 在JavaWeb开发过程中,我们通常会基于springmvc分层思想对整个项⽬进⾏分层开发: 常见的就是分为model(域模型层)、dao(数据库访问层)、service(业务逻辑层)、controller(控制器层)、web(表现层),这样分层之后,各个层之间的职责会⽐较明确,后期维护起来也相对⽐较容易。

通常我们会将其维护到⼀个模块当中,也就是⼀个项⽬就是⼀个模块,把不同的层⽤包进⾏区分,如下图左侧部分。

但是,随着项⽬越来越复杂,每个层的规模也逐渐增⼤,在⼀个模块中进⾏开发,会给测试和维护带来不便,对于⼤型项⽬来说,⼀般会将每个层放到⾃⼰的模块中,然后每个层建⽴联系,单独维护。

对于后期开发维护⼈员来说,右⾯这种分模块的⽅式更直观,看着⽐单模块舒服很多。

好处不多说,⽤了才知道。

2.分层梳理 下⾯两张图⽚⽅便⼤家对于即将分开的模块之间的关系有着重要的指导意义。

按照上⾯的思路,确定好哪些包需要移到哪些模块,下⾯就着⼿迁移啦。

3.分模块搭建/改造 新建模块 选中项⽬,右键--》New--》Module 下⼀步 给模块起个名字 关于名字,如果项⽬名称不长的话,建议使⽤“项⽬名称-模块名称”的⽅式,这样更加直观; 当然了,这是建议,直接取模块名称也是完全没有问题的。

我们先来了解⼀下,新建模块的结构: 说⽩了,这就是maven的标准⽬录(因为还没有Java⽂件,所以还没⽣成target⽬录,idea会帮我们完成的)。

第⼀步:迁移公共类(如果没有就忽略); base⽬录,我放的是基本⼯具类等公共需要⽤到的东西 将这个base⽬录直接拖拽到bill-base模块java⽬录下 在To package⾥输⼊包名路径,路径构成⼀般为: com.公司名称.项⽬名称.原来的包名,这有这样,才能保证不同模块的路径前缀是⼀致的。

不存在的包名会被创建 创建成功后,class连同包名都会完成迁移 如果出现上⾯这种原来的被没有删除的情况,⼿动删除即可。

【黑马程序员】Spring Boot启动原理

【黑马程序员】Spring Boot启动原理

【黑马程序员】Spring Boot启动原理引言Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便。

但是对于新手来说,如果不了解个中原理,难免会遇到坑。

本文作者将带领大家走近神秘的Spring Boot,一步步破开它的神秘面纱,探索Spring Boot 的启动原理。

开发任何基于Spring Boot 的项目,我们都会使用以下的启动类:import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}可以看到,Application 类中定义了注解@SpringBootApplication,main 方法里通过SpringApplication.run 来启动整个应用程序。

因此要研究Spring Boot 的启动原理,我们就需要从这两个地方入手。

强大的SpringBootApplication首先,我们先来看看SpringBootApplication 源码是怎么定义这个注解的:/*** Indicates a {@link Configuration configuration} class that declares one or more* {@link Bean @Bean} methods and also triggers {@linkEnableAutoConfiguration* auto-configuration} and {@link ComponentScan component scanning}. This is a convenience* annotation that is equivalent to declaring {@code @Configuration}, * {@code @EnableAutoConfiguration} and {@code @ComponentScan}.** @author Phillip Webb* @author Stephane Nicoll* @since 1.2.0*/@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })public @interface SpringBootApplication {/*** Exclude specific auto-configuration classes such that they will never be applied.* @return the classes to exclude*/@AliasFor(annotation = EnableAutoConfiguration.class, attribute = "exclude")Class<?>[] exclude() default {};/*** Exclude specific auto-configuration class names such that they will never be* applied.* @return the class names to exclude* @since 1.3.0*/@AliasFor(annotation = EnableAutoConfiguration.class, attribute = "excludeName")String[] excludeName() default {};/*** Base packages to scan for annotated components. Use {@link #scanBasePackageClasses}* for a type-safe alternative to String-based package names.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackages")String[] scanBasePackages() default {};/*** Type-safe alternative to {@link #scanBasePackages} for specifying the packages to* scan for annotated components. The package of each class specified will be scanned.* <p>* Consider creating a special no-op marker class or interface in each package that* serves no purpose other than being referenced by this attribute.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")Class<?>[] scanBasePackageClasses() default {};}可以看到,除了最基础的注解外,还增加了三个@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。

SpringBoot整合MyBatis超详细教程

SpringBoot整合MyBatis超详细教程

SpringBoot整合MyBatis超详细教程⽬录1.整合MyBatis操作1.1.配置模式1.2.注解模式1.3.混合模式1.整合MyBatis操作前⾯⼀篇提到了,实际项⽬中更常⽤的还是MyBatis框架,⽽SpringBoot整合MyBatis进⾏CRUD也⾮常⽅便。

下⾯从配置模式、注解模式、混合模式三个⽅⾯进⾏说明MyBatis与SpringBoot的整合。

1.1.配置模式MyBatis配置模式是指使⽤mybatis配置⽂件的⽅式与SpringBoot进⾏整合,相对应的就有mybatis-config.xml(⽤于配置驼峰命名,也可以省略这个⽂件)、XxxMapper.xml⽂件。

主要步骤为:导⼊mybatis官⽅starter编写mapper接⼝。

标准@Mapper注解编写sql映射⽂件并绑定mapper接⼝在application.yaml中指定Mapper配置⽂件的位置,以及指定全局配置⽂件的信息(建议;配置在mybatis.configuration中,可以省略mybatis-config.xml⽂件)下⾯是具体整合配置步骤:①引⼊相关依赖pom.xml配置:pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>②编写对应Mapper接⼝:@Mapper //这个注解表⽰了这个类是⼀个mybatis的mapper接⼝类@Repositorypublic interface UserMapper {//@Select("select * from user")List<User> findAllUsers();//@Insert("insert into user(id, username, password) values (#{id}, #{username}, #{password})")void insert(User user);//@Update("update user set username = #{username}, password = #{password} where id = #{id}")void update(User user);//@Delete("delete from user where id = #{id}")void deleteById(Integer id);}③在resources下创建对应的mapper⽂件,对应domain类,数据库表单如下:User类:@Datapublic class User {private Integer id;private String username;private String password;}数据库user表:UserMapper.xml⽂件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd"> <!--namespace表⽰当前mapper的唯⼀标识:⼀般使⽤domain的全路径名+Mapper来命名--><mapper namespace="com.fengye.springboot_erMapper"><!--id:⽅法表⽰,⼀般配置对应的⽅法;resultType:表⽰该⽅法有返回,返回需要封装到对应实体的类型--><select id="findAllUsers" resultType="com.fengye.springboot_er">select * from user</select><insert id="insert" parameterType="com.fengye.springboot_er">insert into user(id, username, password) values (#{id}, #{username}, #{password})</insert><update id="update" parameterType="com.fengye.springboot_er">update user set username = #{username}, password = #{password} where id = #{id}</update><delete id="deleteById" parameterType="Integer">delete from user where id = #{id}</delete></mapper>④对应配置application.yml⽂件:application.ymlserver:port: 8083spring:datasource:username: rootpassword: admin#假如时区报错,增加时区配置serverTimezone=UTCurl: jdbc:mysql://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Drivermybatis:#config-location: classpath:mybatis/mybatis-config.xml 使⽤了configuration注解则⽆需再指定mybatis-config.xml⽂件 mapper-locations: classpath:mybatis/mapper/*.xmlconfiguration: #指定mybatis全局配置⽂件中的相关配置项map-underscore-to-camel-case: true1.2.注解模式注解模式使⽤主要步骤:导⼊mybatis官⽅依赖注解⽅式编写mapper接⼝在application.yaml中指定Mapper配置⽂件的位置,以及指定全局配置⽂件的信息可以看到注解模式⽐配置模式少了编写Mapper.xml⽂件,简化了简单SQL语句的xml⽂件编写。

从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解)

从零开始搭建springboot+springcloud+mybatis本地项目全过程(图解)

从零开始搭建springboot+springcloud+mybatis本地项⽬全过程(图解)记录⼀下从零开始搭建⼀个springboot+springcloud+mybatis本地项⽬的demo的过程。

纯代码⼩⽩⼀枚,若有不⾜或错误之处,欢迎⼴⼤朋友指出!开发环境准备:IDE:IntelliJ Idea 2019.3数据库:mysql 8.0.2.2SpringBoot版本:2.2.0.RELEASESpringCloud版本:Hoxton.RELEASE⼀、创建⼀个新的Idea项⽬打开Idea,单击New->File->Project,选择Maven,直接下⼀步输⼊我们的项⽬名,我这⾥起名为pam,单击Finish完成创建⼆、右键单击project下的⽗节点->New->Module,创建⼀个注册中⼼服务端的Module,输⼊⼀下名称,我这⾥以pam-server为例,直接选finish;同理再创建⼀个客户端的Module,输⼊⼀下名称,我这⾥以pam-service为例,直接选finish,结构如图所⽰:三、单击File->Settings->Maven,配置⼀下本地的maven,单击OK四、在最外层pom⽂件引⼊⼀下springboot、springcloud及mybatis的依赖。

这⾥引⼊的springboot版本为2.2.0-RELEASE,与之相对应的springcloud版本为Hoxton.RELEASE。

注意⼆者版本需要相适配,否则会启动报错。

这⾥额外引⼊了⼏个常⽤依赖,直接在maven单击⼀下刷新,仓库即可在线将所需依赖下载进去。

<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><!--注册中⼼相关依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.4.RELEASE</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.10.0</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.3.1.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-contract-stub-runner</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-contract-verifier</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-stream-test-support</artifactId><scope>test</scope></dependency><dependency><groupId>mons</groupId><artifactId>commons-lang3</artifactId><version>3.5</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency></dependencies>五、创建如图所⽰的⽬录结构:①编写注册中⼼,注册中⼼⽬录结构:编写WebApplication启动类,添加注解@EnableEurekaServer和@SpringBootApplication,我这⾥想做⼀个纯注册中⼼,不与数据库挂钩,所以增加了⼀个exclude = DataSourceAutoConfiguration.class,启动项⽬时不⾃动与数据库连接,若想让注册中⼼也连接数据库,这个exclude也可以不要。

【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

【⿊马18期Java毕业⽣】⿊马程序员Java全套资料+视频+⼯具Java学习路线图引⾔:⿊马程序员:深知⼴⼤爱好Java的⼈学习是多么困难,没视频没资源,上⽹花钱还⽼被骗。

为此我们历时⼀个⽉整理这套Java学习路线图,不管你是不懂电脑的⼩⽩,还是已经步⼊开发的⼤⽜,这套路线路你都值得拥有,⼩⽩看上⾯的视频可以成功学会Java并且顺利⼯作,⼤神看了上⾯的资源肯定会谆谆乐道,路线图的宗旨就是分享,专业,便利,让喜爱Java的⼈,都能平等的学习。

从今天起不要在找借⼝,不要再说想学Java却没有资源,赶快⾏动起来,Java等你来探索,⾼薪可能只差下载观看了。

获取更多资源+学习交流+问题解答,就加QQ:2212232413⼀、Java学习路线图—流程篇:⼆、Java学习路线图—视频篇:1、第⼀阶段-Java基础⼊门Java视频篇第⼀阶段-Java基础⼊门本阶段PHP课程共计11个知识点,2个免费学习视频推荐1、周期与⽬标:学习周期:35天学完后⽬标:可进⾏⼩型应⽤程序开发,对数据库进⾏基本的增删改查管理2、知识点:1)计算机基础知识(理解)计算机基础、DOS常⽤命令、Java概述、JDK配置、环境变量配置、Java程序⼊门2)编程基础(掌握)常量与变量、数据类型、运算符、流程控制语句、⽅法、数组3)⾯相对象(重点)类与对象、封装、继承、多态、抽象类、接⼝4)常⽤类(理解)常⽤类介绍、正则表达式5)集合(重点)Collection集合、List集合、Set集合、Map集合6)异常(理解)异常处理⽅式、⾃定义异常7)IO(掌握)File类、递归、字节流、字符流、转换流、缓冲流8)多线程(理解)多线程、线程池9)⽹络编程(理解)⽹络编程10)反射(理解)反射11)MySQL及JDBC开发(重点)MySQL数据库、JDBC、DBUtils、DBCP连接池3、该阶段免费配套视频1)(此免费视频对应上述1,2,3,4,5,6,7,8,9,10知识点)2)》(此免费视频对应上述1,2,3,4,5,6,7,8,9,10知识点)4、精品推荐视频张孝祥09年Struts开发视频教程张孝祥_Java⾼新技术2、第⼆阶段-JavaWeb阶段Java视频篇第⼆阶段-JavaWeb阶段本阶段PHP课程共计4个⼤知识点,4个免费学习视频推荐1、周期与⽬标:学习周期:33天学完后⽬标:可以仿制任何⽹站前端页⾯,解决⽹页浏览器兼容性问题,解决PC端和移动端兼容性问题;使⽤前端脚本进⾏相关⽹页功能特效编写,使⽤JavaWeb核⼼技术轻松写出任何⽹站功能模块,使⽤JavaWeb⾼级部分知识解决⽹站的相关⾼并发问题,⽆压⼒胜任javaEE开发⼯程师职位。

SpringBoot整合BootStrap实战

SpringBoot整合BootStrap实战

SpringBoot整合BootStrap实战⽬录SpringBoot整合BootStarp1.Pom⽂件2.在resource下创建⼀个l⽂件路径:statis/webjars3.将页⾯放在src/main/webapp/WEB-INF/views下4.界⾯添加以下⼏⾏5.application.yml配置⽂件中6. Controller注意因为我显⽰的是jspSpringBoot整合BootStarp⼀开始在将BootStrap整合到项⽬中时,以为SpringBoot项⽬和以前的javaWeb⼀样,直接在页⾯中引⽤css,js即可,但是打开界⾯时,样式效果出不来,后来看了⼏篇⽂章以及⾃⼰摸索,现将代码展⽰如下:1.Pom⽂件<properties><webjars-locator>0.32-1</webjars-locator><bootstrap>3.3.7</bootstrap><jquery>3.3.1</jquery></properties>这是需要导⼊的依赖<dependency><groupId>org.webjars</groupId><artifactId>webjars-locator</artifactId><version>${webjars-locator}</version></dependency><!-- bootstrap --><dependency><groupId>org.webjars</groupId><artifactId>bootstrap</artifactId><version>${bootstrap}</version></dependency><!-- jquery --><dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId><version>${jquery}</version></dependency>2.在resource下创建⼀个l⽂件路径:statis/webjars3.将页⾯放在src/main/webapp/WEB-INF/views下这是我⾃⼰新建的,如上所⽰4.界⾯添加以下⼏⾏<script src="/webjars/jquery/jquery.min.js"></script><script src="/webjars/bootstrap/js/bootstrap.min.js"></script><link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.min.css" rel="external nofollow" />5.application.yml配置⽂件中spring:mvc:view:prefix: /WEB-INF/views/ #前缀suffix: .jsp #后缀6. Controller@Controller@RequestMapping(value = "/show")public class PageController {@RequestMapping("/getHelloJsp")public String helloJsp(ModelMap map) {// 加⼊⼀个属性,⽤来在模板中读取// map.addAttribute("name", "wade");return "hello";}}此时启动项⽬的启动类,输⼊url:localhost:端⼝号/show/getHelloJsp 即可正确的显⽰页⾯的样式注意因为我显⽰的是jsp所以你还得提前在pom中添加关于jsp的两个依赖<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency>因为是初学springBoot所以⽂件路径各⽅⾯可能没有按照springBoot的规范来,以后慢慢纠正,如有更好的⽅式,请不吝赐教。

黑马程序员资料参考

黑马程序员资料参考

目录北京黑马培训简介: (2)报名流程: (2)自学课程: (2)上课时间安排:(实行指纹打卡,迟到10天以上劝退!) (3)课程设置:(四个月集训) (3)培训费用: (3)师资力量:(部分) (3)往届课程参考: (6)黑马晨读资料: (14)(ref. full specialization) (22)CCP(communication[kə,mju:ni'keiʃən]control [kən'trəul]processor ['prəusesə]) 通信控制处理机 (27)MIPS(millions of instructions per second 每秒百万条指令 (30)学习路线图: (40)北京黑马培训 JAVA Android IOS北京黑马培训简介:报名流程:1.网上填写报名信息,并进入报名系统提交一封自荐信(3000字左右)2.下载基础测试,测试基础知识掌握情况。

(3天左右做完)3.根据基础测试结果,自学相应的技术视频4.需要写10篇技术blog、在黑马论坛与志同道合的朋友交流。

(积累技术分)5.技术储备好了,就可以参加入学考试了。

(一份试卷,一天内完成)6.预约老师,进行远程面试。

(面试时间30分钟以上,主要是技术性问题)自学课程:黑马程序员JavaEE+Android——开学前自学的Java课程(提供这些课程的视频下载)◇基础好:视频学习周期建议为5—10天,具体根据学生自学能力,自行合理安排时间。

第一阶段:Java基础(1-2天)●Java高级视频_IO输入与输出●Java高级视频_网络编程第二阶段:Java基础加强(3-4天)●2016年Java高新技术第三阶段:7k月薪面试题破解(2天)●交通灯管理系统视频●银行业务调度系统◇没有基础:视频学习周期建议为20-40天,具体根据学生自学能力,自行合理安排时间。

第一阶段:Java初级(8-15天)●Java开发前奏●Java编程基础●面向对象●多线程●JavaAPI第二阶段:Java基础(6-8天)●Java高级视频_IO输入与输出●图形用户界面GU●Java高级视频_网络编程第三阶段:Java基础加强(5-7天)●2016年Java高新技术第四阶段:7k月薪面试题破解(2-3天)●交通灯管理系统视频●银行业务调度系统上课时间安排:(实行指纹打卡,迟到10天以上劝退!)作息时间:早8:30——晚8:30早8:30——9:00 英语晨读时间,掌握软件开发常用词汇早9:00——12:00 上午上课时间12:00——14:00 午餐和午休时间14:00——17:00 下午上课时间17:00——18:00 晚餐时间18:00——20:30 晚自习时间课程设置:(四个月集训)第一阶段:Html+CSS+JavaScript基础第二阶段:JavaWEB+JavaMail开发技术+网上银行交易系统+网上在线支付第三阶段:Android核心基础第四阶段:Android高级+Git版本管理+linux+Webservice技术第五阶段:Android项目实战:手机卫士+321播放器+红孩子电子商城+植物大战僵尸+智能短信分类管理+豆瓣客户端+手机彩票等等第六阶段:就业面试与指导、现场招聘一个班级有7、8个讲师,其中3个主讲班型:大班70人左右上课形式:讲师一天讲5个小时左右,讲课过程中每敲一行代码,讲解一行代码;课下学员自己找时间练习。

【黑马程序员】spring boot入门

【黑马程序员】spring boot入门

【黑马程序员】spring boot入门什么是spring bootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven 整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

使用spring boot有什么好处其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?1)配置web.xml,加载spring和spring mvc2)配置数据库连接、配置spring事务3)配置加载配置文件的读取,开启注解4)配置日志文件...配置完成之后部署tomcat 调试...现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!但是如果使用spring boot呢?很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!使用sping boot到底有多爽,用下面这幅图来表达快速入门说了那么多,手痒痒的很,马上来一发试试!maven构建项目1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:3、点击Generate Project下载项目压缩包4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!项目结构介绍如上图所示,Spring Boot的基础结构共三个文件: l src/main/java 程序开发以及主程序入口l src/main/resources 配置文件l src/test/java 测试程序另外,spingboot建议的目录结果如下:root package结构:com.example.myproject [AppleScript] 纯文本查看复制代码01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 com+- example+- myproject+- Application.java|+- domain| +- Customer.java| +- CustomerRepository.java|+- service| +- CustomerService.java| +- controller| +- CustomerController.java|1、Application.java 建议放到跟目录下面,主要用于做一些框架配置2、domain 目录主要用于实体(Entity )与数据访问层(Repository )3、service 层主要是业务类代码4、controller 负责页面访问控制采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改 最后,启动Application main 方法,至此一个java 项目搭建好了!引入web 模块1、pom.xml 中添加支持web 的模块:[AppleScript] 纯文本查看 复制代码1 2 3 4 <dependency ><groupId >org.springframework.boot </groupId ><artifactId >spring -boot -starter -web </artifactId ></dependency >pom.xml 文件中默认有两个模块:spring-boot-starter :核心模块,包括自动配置支持、日志和YAML ;spring-boot-starter-test :测试模块,包括JUnit 、Hamcrest 、Mockito 。

超详细的SpringBoot框架入门教程

超详细的SpringBoot框架入门教程

超详细的SpringBoot框架⼊门教程Spring Boot 框架快速⼊门教程以⼤量⽰例讲解了 Spring Boot 在各类情境中的应⽤,让⼤家可以跟着⽼师的思维和代码快速理解并掌握。

适⽤于 Java 开发⼈员,尤其是初学 Spring Boot 的⼈员和需要从传统 Spring 转向 Spring Boot 开发的技术⼈员。

下边是动⼒节点的SpringBoot教程⾮常适合初学⼊门,讲的⾮常详细,⽽且全程⽆废话!视频链接:1. Spring Boot简介Spring 诞⽣时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。

⽆需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了⼀种相对简单的⽅法,通过依赖注⼊和⾯向切⾯编程,⽤简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。

虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。

第⼀阶段:xml配置在Spring 1.x时代,使⽤Spring开发满眼都是xml配置的Bean,随着项⽬的扩⼤,我们需要把xml配置⽂件放到不同的配置⽂件⾥,那时需要频繁的在开发的类和配置⽂件之间进⾏切换第⼆阶段:注解配置在Spring 2.x 时代,随着JDK1.5带来的注解⽀持,Spring提供了声明Bean的注解(例如@Component、@Service),⼤⼤减少了配置量。

主要使⽤的⽅式是应⽤的基本配置(如数据库配置)⽤xml,业务配置⽤注解第三阶段:java配置Spring 3.0 引⼊了基于 Java 的配置能⼒,这是⼀种类型安全的可重构配置⽅式,可以代替 XML。

我们⽬前刚好处于这个时代,Spring4.x和Spring Boot都推荐使⽤Java配置。

所有这些配置都代表了开发时的损耗。

【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统

【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统

【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统开发环境JDK1.8、Maven、Eclipse技术栈SpringBoot2.0.1、thymeleaf3.0.9、quartz2.3.0、iview、vue、layer、AdminLTE、bootstrap启动说明∙项目使用的数据库为MySql,选择resources/sql中的tables_mysql_innodb.sql文件初始化数据库信息。

∙在resources/application.properties文件中替换为自己的数据源。

∙运行Application main方法启动项目,项目启动会自动创建一个测试任务见:com.itstyle.quartz.config.TaskRunner.java。

∙项目访问地址:http://localhost:8080/task项目截图版本区别(spring-boot 1.x and 2.x)这里只是针对这两个项目异同做比较,当然spring-boot 2.x版本升级还有不少需要注意的地方。

项目名称配置:# spring boot 1.x server.context-path=/quartz# spring boot2.x server.servlet.context-path=/quartzthymeleaf配置:#spring boot 1.x spring.thymeleaf.mode=LEGACYHTML5#spring boot2.x spring.thymeleaf.mode=HTMLHibernate配置:[AppleScript] 纯文本查看复制代码?1# spring boot 2.x JPA 依赖 Hibernate 52 3 4 5 6 7 8# Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.spring.jpa.hibernate.naming.strategy =org.hibernate.cfg.ImprovedNamingStrategy# stripped before adding them to the entity manager)spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect# Hibernate 5spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.mod el.naming.ImplicitNamingStrategyLegacyJpaImplspring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.mod el.naming.PhysicalNamingStrategyStandardImplquartz配置:[AppleScript] 纯文本查看复制代码?120 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4# spring boot 2.x 已集成Quartz,无需自己配置spring.quartz.job-store-type=jdbc.quartz.scheduler.instanceName=clustere dScheduler.quartz.scheduler.instanceId=AUTO .quartz.jobStore.class=org.quartz.impl. jdbcjobstore.JobStoreTX.quartz.jobStore.driverDelegateClass=or g.quartz.impl.jdbcjobstore.StdJDBCDelegate.quartz.jobStore.tablePrefix=QRTZ_ .quartz.jobStore.isClustered=true .quartz.jobStore.clusterCheckinInterval =10000eProperties=false .quartz.threadPool.class=org.quartz.sim pl.SimpleThreadPool.quartz.threadPool.threadCount=10 .quartz.threadPool.threadPriority=5 .quartz.threadPool.threadsInheritContex tClassLoaderOfInitializingThread=true默认首页配置:[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14/*** 配置首页 spring boot 1.x* 创建者小柒2012* 创建时间 2017年9月7日*/@Configurationpublic class MyAdapter extends WebMvcConfigurerAdapter{@Overridepublic void addViewControllers( ViewControllerRegistry registry ) {registry.addViewController( "/" ).setViewName( "for ward:/login.shtml" );registry.setOrder( Ordered.HIGHEST_PRECEDENCE );super.addViewControllers( registry );}}[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14/*** 配置首页(在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter 以被废弃* 建议实现WebMvcConfigurer接口)* 创建者小柒2012* 创建时间 2018年4月10日*/@Configurationpublic class MyAdapter implements WebMvcConfigurer{@Overridepublic void addViewControllers( ViewControllerRegistry registry ) {registry.addViewController( "/" ).setViewName( "for ward:/login.shtml" );registry.setOrder( Ordered.HIGHEST_PRECEDENCE );}}待解决问题:[AppleScript] 纯文本查看复制代码?01/**02 03 04 05 06 07 08 09 10 11 12 13* Set a strategy for handling the query results. This can be used to change* "shape" of the query result.** @param transformer The transformer to apply** @return this (for method chaining)** @deprecated (since 5.2)* @todo develop a new approach to result transformers*/@DeprecatedQuery<R> setResultTransformer(ResultTransformer transformer);hibernate 5.2 废弃了setResultTransformer,说是要开发一种新的获取集合方法,显然目前还没实现,处于TODO状态。

【黑马程序员】Spring全家桶

【黑马程序员】Spring全家桶

【黑马程序员】Spring 全家桶Spring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。

Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。

Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开容器:Spring 包含并管理应用中对象的生命周期和配置MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常3. Spring由哪些模块组成?以下是Spring 框架的基本模块:Core moduleBean moduleContext moduleExpression Language moduleJDBC moduleORM moduleOXM moduleJava Messaging Service(JMS) moduleTransaction moduleWeb moduleWeb-Servlet moduleWeb-Struts moduleWeb-Portlet module4. 核心容器(应用上下文) 模块这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是任何以spring 为基础的应用的核心。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【黑马程序员】从零学起1-springboot整合篇
Spring-Boot整合篇
Spring-Boot想必大家已经熟悉的不能再熟悉了,接下来我们就直接进入正题,直接整合。

下面是项目的结构。

大家注意,所有的包一定要与启动类所在的包的子包中
一:集成mybatis
集成mybatis核心就是DataSource以及SqlSessionFactoryBean。

在配置DataSource的时候,需要添加一些数据库、驱动信息,我这里用了@ConfigurationProperties(prefix="druid")之后,就能在application.properties 里面去配置数据库、驱动信息了。

下面是对应*Mapper.xml的目录结构。

在启动类上加了@MapperScan("com.cdxt.cdxt30.mapper") -- > 用于扫描对应的Mapper接口,@EnableTransactionManagement --> 开启事务
以上就是springboot集成mybatis的所有步骤。

二:集成thymeleaf
大家可能都遇见SpringBoot不能返回一个html的问题,可能是因为你还没有去配置springmvc的视图解析器,这里我用的是thymeleaf模板。

只要在pom.xml中引入了以下依赖,就已经可以返回html了。

三:集成activiti
这里有两个需要注意的地方,为了保证activiti和业务之间的事务一致,一定要把之前配置的DataSource和DataSourceTransactionManager注入到activiti 配置类当中。

配置引擎对象ProcessEngineFactoryBean和引擎对象的配置对象SpringProcessEngineConfiguration、以及相关的服务对象
四:集成shiro
这里需要配置shiro的核心过滤器ShiroFilterFactoryBean以及SecurityManager还有对应的Realm。

我这里是把Realm注入交给spring去管理的(在Realm上加一个
@Component),这样我就启动这个配置类的时候,就能用@Autowired来注入Realm 了
未完待续!。

相关文档
最新文档