【黑马程序员】从零学起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。

  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 了
未完待续!。

相关文档
最新文档