首页 02spring boot快速集成第三方技术详解springboot课件

02spring boot快速集成第三方技术详解springboot课件

举报
开通vip

02spring boot快速集成第三方技术详解springboot课件快速开始springboot应用官方向导搭建boot应用1.地址:2.设置项目属性:3.解压,拷贝到工作空间,导入maven项目4.写Controller:HelloController.java5.启动SpringBoot类:DemoApplication普通maven工程搭建boot应用1.新建一个普通的maven工程,选择quickstart【注意:Springboot是web工程,但是我们这里只需要建立quickstart即可,因为springboot内嵌了servlert容器】2.查看官方文档:点击qui...

02spring boot快速集成第三方技术详解springboot课件
快速开始springboot应用官方向导搭建boot应用1.地址:2.设置项目属性:3.解压,拷贝到工作空间,导入maven项目4.写Controller:HelloController.java5.启动SpringBoot类:DemoApplication普通maven工程搭建boot应用1.新建一个普通的maven工程,选择quickstart【注意:Springboot是web工程,但是我们这里只需要建立quickstart即可,因为springboot内嵌了servlert容器】2.查看官方文档:点击quickstart3.选择版本【1.5.10.RELEASE】,建议:生产环境中选择的版本4.拷贝依赖的父pom到的工程pom文件中:org.springframework.bootspring-boot-starter-parent1.5.10.RELEASEorg.springframework.bootspring-boot-starter-web5.从上面的第一个boot项目的pom中拷贝项目构建的内容到当前工程中(以为每个maven项目都必须要的):UTF-8UTF-81.8org.springframework.bootspring-boot-maven-plugin6.如果项目出现红叉,选择项目--》右键--》Maven--》UpdateProject7.拷贝文档中的事例代码SampleController.java到工程中8.Runas-->JavaApplication启动SampleController.java9.浏览器输入:即可当然,除了以上两种方式搭建boot工程,也可以通过其它工具快速生成,例如idea,sts,springbootcli等这些工具集成了springboot特性,可以一键生成springboot工程骨架StarterPOM统一父POM管理建立boot-parent工程好,首先我们建立一个boot-parent的maven工程:然后修改pom.xml1.packaging改为为pom格式:pom2.加入dependencyManagement,同时去掉version,直接使用父pom中的版本即可3.删除无用的源文件,只保留pom.xml4.修改pom.xml,加入如,从上面获取即可:那么我们要成为一个springboot项目,必须要引入他的父pom对不对:于是加入他的父pom:org.springframework.bootspring-boot-parent1.5.10.RELEASE建立boot-base工程:建立boot-base工程,实现之前的helloworld功能:1.在boot-parent工程上面,建立mavenmodule模块工程2.把之前的SampleController.java过来,但是会报错,这时候,加入如:org.springframework.bootspring-boot-starter-web1.如果报错,如下:2.需要修改父pom.xml,boot-parent中的pom.xml,加入如:3.启动SampleController,然后:springboot一个很重要的特点:解决了所有依赖的版本问题springboot测试1.添加测试支持依赖:spring-boot-starter-testorg.springframework.bootspring-boot-starter-testtest注意:加入这个依赖之后,junit包就可以不用了,因为test的starter中包含了junit备注:怎么找到所有的starter:这里面ctrl+f搜索:starter,就可以看到springboot中的所有starter1.在测试建立测试程序类,测试SampleController3.编写测试类:soeasyspringboot启动注解分析1.@EnableAutoConfiguration:开启自动配置功能@ComponentScan(basePackages={"com.example.boot"})包扫描2.@SpringBootApplication配置详解:他是一个组合注解,他内部主要包含三个子注解:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan@SpringBootConfiguration:他继承@Configuration,说明这是一个配置类,什么是配置类呢?就相当于我们以前写的xml配置,例如我们我们的bean,用来实例化一个bean。那么在这个配置类中就是实现以前我们xml配置的功能@EnableAutoConfiguration:开启自动配置功能,他会扫描带有@Configuration的类,然后初始化这些配置类中的并且加入到应用上下文中去,同时完成一些基本的初始化工作@ComponentScan:组件包扫描,也就是我现在需要扫描哪些包下面的注解,可自动发现和装配一些bean。默认扫描当前启动类所在包下面的类和下面的包springboot热加载/部署1.加入springloadedorg.springframeworkspringloaded2.加入spring-boot-devtoolsorg.springframework.bootspring-boot-devtools3.启动程序,浏览器出现第一个结果,然后修改器输出内容,再次刷新看到新的结果同时在台可以这样一句话:o.s.b.d.a.OptionalLiveReloadServer:LiveReloadserverisrunningonport35729项目打包部署1.修改boot-parent中pom.xml文件,增加如(当然也可以把下面的内容到子模块中也是可以的)org.springframework.bootspring-boot-maven-plugincom.example.boot.SpringBootMainrepackage2.执行maveninstall3.在target目录下面,可以看到打包的jar文件4.执行java-jarxx.jar例如:D:\tools\javaSE1.8\jdk1.8\bin>java.exe-jarD:\01_dev_env\repos\com\example\boot\boot-base\0.0.1-SNAPSHOT\boot-base-0.0.1-SNAPSHOT.jar【注意:执行jar的jdk版本需要与jar打包编译的版本一致。如果配置了环境变量,直接使用java命令打包即可】这就是微架构,一个程序打包之后轻轻松松在如任何地方一执行就完成了。SpringBoot属性配置文件详解修改端口application.properties:server.port=8888另外,也可以直接在运行jar包的时候修改java-jarxx.jar--server.port=8888自定义属性及获取1.application.properties中[文件改成UTF-8]:teacher.id=1teacher.name=zhangsan2.@Value("${属性名}")获取对应的属性值@ControllerpublicclassSampleController{@Value("${teacher.name}")privateStringteacherName;@RequestMap("/")@ResponseBodypublicStringhome(){return"HelloWorld!"+this.teacherName;}}参数application.propertiesteacher.id=1teacher.name=zhangsanteacher.info=Teacher${teacher.name}'snumberis${teacher.id}随机内容生成#随机字符串random.string=${random.value}#随机intrandom.number=${random.int}#随机longrandom.long=${random.long}#1-20的随机数random.b=${random.int[1,20]}多环境配置我们在开发应用时,通常一个项目会被部署到不同的环境中,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,对于多环境的配置,大部分构建工具或是框架解决的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,SpringBoot也提供了支持在SpringBoot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:⚫application-dev.properties:开发环境⚫application-test.properties:测试环境⚫application-prod.properties:生产环境至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profileive属性来设置,其值对应{profile}值。比如:spring.profileive=dev就会加载application-dev.properties配置文件中的内容案例:在dev,test,prod这三个文件均都设置不同的server.port端口属性,如:dev环境设置为8081,test环境设置为8082,prod环境设置为8083application.properties中设置spring.profileive=dev,就是说默认以dev环境设置总结:1.application.properties中配置通用内容,并设置spring.profileive=dev,以开发环境为默认配置2.application-{profile}.properties中配置各个环境不同的内容Springboot集成模板引擎实现web应用静态资源静态资源:js,css,html,图片,音等静态资源路径:是指系统可以直接的路径,且路径下的所有文件均可被用户直接。SpringBoot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources案例:在classpath下面创建static目录,并且加入一个图片a.png加入之后,然后不需要重启直接:修改默认的静态资源目录:spring.resources.static-locations模板引擎SpringBoot强烈建议使用模板引擎渲染html页面,避免使用JSP,若一定要使用JSP将无法实现SpringBoot的多种特性。在这里讲两种模板引擎的集成:Thymeleaf(springboot推荐),Marker【师傅领进门,修行靠个人,哈哈】ThymeleafSpringboot默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径集成Thymeleaf步骤:1.修改pom.xml,增加如下依赖:org.springframework.bootspring-boot-starter-thymeleaf2.编写Controller@ControllerpublicclassSampleController{@RequestMap("/testThymeleaf")publicStringtestThymeleaf(MMapmap){//设置属性map.addAttribute("name","zhangsan");//testThymeleaf:为模板文件的名称//对应src/main/resources/templates/testThymeleaf.htmlreturn"testThymeleaf";}}3.在src/main/resources/下面建立templates/testThymeleaf.htmltestThymeleafABC4.运行springboot,浏览器输入:Thymeleaf的默认参数配置(供参考):#EnableMVCThymeleafviewresolution.spring.thymeleaf.enabled=true#Enabletemplatecaching.spring.thymeleaf.cache=true#Checkthatthetemplateslocationexists.spring.thymeleaf.check-template-location=true#Content-Typevalue.spring.thymeleaf.content-type=text/html#Templateencoding.spring.thymeleaf.encoding=UTF-8#Comma-separatedlistofviewnamesthatshouldbeexcludedfromresolution.spring.thymeleaf.excluded-view-names=#Templatemodetobeappliedtotemplates.SeealsoStandardTemplateModeHandlers.spring.thymeleaf.mode=HTML5#PrefixthatgetsprependedtoviewnameswhenbuildingaURL.spring.thymeleaf.prefix=classpath:/templates/#SuffixthatgetsappendedtoviewnameswhenbuildingaURL.spring.thymeleaf.suffix=.html#Orderofthetemplateresolverinthechain.spring.thymeleaf.template-resolver-order=#Comma-separatedlistofviewnamesthatcanberesolved.spring.thymeleaf.view-names=Marker1.修改pom.xml,增加依赖org.springframework.bootspring-boot-starter-marker2.写Controller@RequestMap("/testmarker")publicStringtestmarker(Mapmap){map.put("name","张三");return"hello";//默认为src/main/resources/templates/hello.flt}3.hello.flt,目录为:src\main\resources\templateshello,${name}3运行springbootmain,浏览器输入如下地址:集成Swagger2构建RESTfulAPI文档[Swagger2提供以下能力]:1.随项目自动生成强大RESTfulAPI文档,减少工作量2.API文档与代码整合在一起,便于同步更新API说明3.页面测试功能来调试每个RESTfulAPI[集成Swagger2步骤]:1.修改pom.xml,添加Swagger2依赖io.springfoxspringfox-swagger22.2.2io.springfoxspringfox-swagger-ui2.2.22.创建Swagger2配置类在springboot启动类所在子创建Swagger配置类SwaggerConfig.java,如下:SwaggerConfig.java内容如下:@Configuration@EnableSwagger2publicclassSwaggerConfig{@BeanpublicDocketcreateRestApi(){returnnewDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.boot"))//指定扫描包下面的注解.paths(PathSelectors.any()).build();}//创建api的基本privateApiInfoapiInfo(){returnnewApiInfoBuilder().title("集成Swagger2构建RESTfulAPIs").description("集成Swagger2构建RESTfulAPIs").termsOfServiceUrl("").contact("zhangsan").version("1.0.0").build();}}3.创建Controller:SwaggerController.java@RestController@RequestMap(value="/swagger")publicclassSwaggerController{@ApiOperation(value="获取用户",notes="根据id来获取用户详细")@ApiImplicitParam(name="id",value="用户ID",required=true,dataType="String")@RequestMap(value="/{id}",method=RequestMethod.GET)publicMapgetInfo(@PathVariableStringid){Mapmap=newHashMap();map.put("name","张三");map.put("age","34");returnmap;}}4.启动Springboot,SwaggerUI界面:5.测试API:集成Swagger2源码!统一异常处理创建全局异常处理类:通过使用@ControllerAdvice的异常处理类,@ExceptionHandler用来定义的异常类型1.增加异常类:@ControllerAdviceclassGlobalExceptionHandler{@ExceptionHandler(value=Exception.class)publicMAndViewdefaultErrorHandler(HttpServletRequestreq,Exceptione)throwsException{MAndViewmav=newMAndView();mav.addObject("msg","异常咯...");mav.setViewName("error");returnmav;}}2.增加Controller,抛出异常:@RequestMap("/exception")publicStringhello()throwsException{thrownewException("发生错误");}3.src/main/resources/templates增加error.html:统一异常处理

Error

集成Mybatis集成步骤:1.修改pom.xml,增加依赖org.mybatis.spring.bootmybatis-spring-boot-starter1.1.1mysqlmysql-connector-java2.mysql的连接配置application.properties:spring.datasource.url=:mysql://localhost:3306/springspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql..Driver3.创建表t_userCREATETABLE`t_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(40)DEFAULTNULL,`age`int(11)DEFAULTNULL,`address`varchar(100)DEFAULTNULL,`phone`varchar(40)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;4.创建User.java文件包名为:com.example.boot.beanpublicclassUser{privateIntegerid;privateStringname;privateIntegerage;privateStringaddress;privateStringphone;//getter,setter省略}5.创建UserMapper.java接口文件包名为:com.example.boot.mybatis@MapperpublicinterfaceUserMapper{/**根据id用户*/@Select("SELECT*FROMT_USERWHEREID=#{id}")UserfindById(@Param("id")Stringid);/**新增用户*/@Insert("INSERTINTOT_USER(NAME,AGE,ADDRESS,PHONE)VALUES(#{name},#{age},#{address},#{phone})")intinsert(@Param("name")Stringname,@Param("age")Integerage,@Param("address")Stringaddress,@Param("phone")Stringphone);}6.测试@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes=SpringBootMain.class)publicclassMybatisTest{@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestInsert()throwsException{intnum=userMapper.insert("zhangsan",20,"长沙","");TestCase.assertEquals(num,1);}@TestpublicvoidtestFindById()throwsException{Useru=userMapper.findById(14);TestCase.assertNotNull(u);System.out.println(u.getName());}}注意:测试完毕之后,记得把这个测试类注释掉,不然后面构建整个项目的时候会执行testcase,导致编译不集成redis集成Redis集成步骤:1.修改pom.xml,增加依赖org.springframework.bootspring-boot-starter-data-redis注意:旧版本springboot中集成的redisstarter为:spring-boot-starter-redis2.redis连接配置#REDIS(RedisProperties)#Redis数据库索引(默认为0)spring.redis.database=0#Redis服务器地址spring.redis.host=127.0.0.1#Redis服务器连接端口spring.redis.port=6379#Redis服务器连接(默认为空)spring.redis.password=#连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active=8#连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.max-wait=-1#连接池中的最大空闲连接spring.redis.pool.max-idle=8#连接池中的最小空闲连接spring.redis.pool.min-idle=0#连接超时时间(毫秒)spring.redis.timeout=0注意:spring.redis.database的配置通常使用0即可,Redis在配置的时候可以设置数据库数量,默认为16,可以理解为数据库的schema3.启动rediswindows:redis-serverredis.windows.conf4.测试@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes=SpringBootMain.class)publicclassSpringRedisTest{@AutowiredprivateRedisTemplateredisTemplate;@TestpublicvoidtestRedis()throwsException{ValueOperationsops=redisTemplate.opsForValue();ops.set("name","zhangsan");Stringvalue=ops.get("name");System.out.println(value);TestCase.assertEquals("zhangsan",value);}}注意:redis中对象,需要我们实现RedisSerializer接口来对传入对象进行序列化和反序列化集成RabbitMQRabbitMQ是以AMQP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 实现的一种消息中间件,AMQP是AdvancedMessageQueuingProtocol的,它是一个面向消息中间件的开放式 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 应用层协议。AMQP中定义了以下标准特性:消息方向消息队列消息路由(:点到点模式和发布-订阅模式)可靠性安全性关于AMQP、RabbitMQ的详细内容不再这里过多,本次课主要讲怎么与Springboot集成1.安装RabbitMQ[windows]Erlang/OTP20.3地址:win6420.3.exeErlang/OTP其它版本地址:RabbitMQServer3.7.4地址:RabbitMQ其它版本地址:关于Linux平台怎么安装,同学们自行即可2.启动RabbitMQServerRabbitMQServer安装之后,会自动为windows服务,并以默认配置启动起来所以需要启动的话,直接通过服务的方式启动即可。3.RabbitMQ管理页面1.开启Web管理插件进入rabbitmq安装目录的sbin目录,在此打开dos命令窗口,执行以下命令rabbitmq-pluginsenablerabbitmq_management出现如下提示,说明web管理插件安装然后重新启动RabbitMQ服务,打开浏览器并:,并使用默认用户guest登录,也为guest,管理界面4.SpringBoot整合1.修改pom.xml,增加依赖支持org.springframework.bootspring-boot-starter-amqp2.新增管理用户并设置权限1.Addauserusername:springbootpassword:1234562.切换到springboot用户登陆,在Allusers中,点击Name为springboot,进入权限设置页面3.在权限设置页面,进入Permissions页面,点击“Setpermission"3.rabbitmq连接配置##rabbitmqconfigspring.rabbitmq.host=localhostspring.rabbitmq.port=5672spring.rabbitmq.username=springbootspring.rabbitmq.password=1234564.创建Rabbit配置类配置类主要用来配置队列、交换器、路由等高级importorg.springframework.amqp.core.Queue;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassRabbitConfig{@BeanpublicQueuefirstQueue(){//创建一个队列,名称为:firstreturnnewQueue("first");}}5.创建消息产生者类@ComponentpublicclassSender{@AutowiredprivateAmqpTemplaterabbitTemplate;publicvoidsend(){rabbitTemplate.convertAndSend("first","testrabbitmqmessage!!!");}}说明:通过注入AmqpTemplate接口的实例来实现消息的发送,AmqpTemplate接口定义了一套AMQP协议的基础操作6.创建消息消费者@Component@RabbitListener(queues="first")publicclassReceiver{@RabbitHandlerpublicvoidprocess(Stringmsg){System.out.println("receivemsg:"+msg);}}说明:@RabbitListener注解:定义该类需要的队列@RabbitHandler注解:指定对消息的处理6.创建测试类@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes=SpringBootMain.class)publicclassRabbitmqTest{@AutowiredprivateSendersender;@TestpublicvoidtestRabbitmq()throwsException{sender.send();}}7.启动主程序:SpringBootMain台如果出现以下,则说明rabbitmq连接Creatednewconnection:rabbitConnectionFactory#29102d45:0/SimpleConnection@1dcfb5ba[delegate=amqp://springboot@127.0.0.1:5672/,localPort=55088]8.运行Junit测试类台输出:receivemsg:testrabbitmqmessage!!!集成RabbitMQ完毕!Springboot日志Java有很多日,例如,JavaUtilLogging,Log4J,Log4J2,Logback等。SpringBoot也提供了不同的选项,比如日志框架可以用logback或log4j,log4j2等。默认的日志框架logbackspringboot自带log日志功能使用的是slf4j(SimpleLoggingFacadeForJava),它是一个于各类Java日志框架的统一Facade抽象日志实现默认使用的logbackLogback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。这是默认支持logback的例如,在spring-boot-starter依赖中,添加了spring-boot-starter-logging依赖org.springframework.bootspring-boot-starter-logging那么,SpringBoot应用将自动使用logback作为应用日志框架,SpringBoot启动的时候,由org.springframework.boot.logging.Logging.LoggingApplicationListener根据情况初始化并使用。值得注意的是,默认情况下,SpringBoot使用logback作为应用日志框架。因为spring-boot-starter其中包含了spring-boot-starter-logging,该依赖就是使用SpringBoot默认的日志框架logback【程序中使用】:importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;privatefinalLoggerlogger=LoggerFactory.getLogger(SampleController.class);日志级别默认情况下,SpringBoot配置的是INFO日志级别,也就是会输出INFO级别以上的日志(ERROR,WARN,INFO)。如果需要Debug级别的日志。在src/main/resources/application.properties中配置。debug=true此外,配置logging.level.*来具体输出哪些包的日志级别。例如logging.level.root=INFOlogging.level.org.springframework.web=DEBUGlogging.level.com.example.boot.controller=DEBUG日志文件默认情况下,SpringBoot日志只会输出到台,并写入到日志文件,因此,对于正式环境的应用,我们需要通过在application.properites文件中配置logging.file文件名称和logging.path文件路径,将日志输出到日志文件中。logging.path=/var/tmplogging.file=.loglogging.level.root=info如果只配置logging.path,在/var/tmp文件夹生成一个日志文件为spring.log。如果只配置logging.file,会在项目的当前路径下生成一个.log日志文件。值得注意的是,日志文件会在10MB大小的时候被截断,产生新的日志文件。常用的日志框架log4j如果,我们希望使用log4j或者log4j2,我们可以采用类似的方式将它们对应的依赖模块加到Maven依赖中。集成log4j2在spring-boot-dependenciesPOMs中搜索spring-boot-starter-log4j2发现Springboot父Pom中提供了这个依赖,于是我们加入如下jar依赖:org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-loggingorg.springframework.bootspring-boot-starter-log4j2日志使用跟上面logback一样。集成log4j在spring-boot-dependenciesPOMs中搜索spring-boot-starter-log4j发现Springboot的父Poms中并没有提供了这个依赖,我们在仓库中查找spring-boot-starter-log4j1.加入pom依赖org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-loggingorg.springframework.bootspring-boot-starter-log4j1.3.8.RELEASE2.classpath下增加log4j.propertieslog4j.rootCategory=INFO,stdout,file,errorfilelog4j.category.com.example.boot=INFO,myFilelog4j.logger.error=errorfile#台输出log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}%5p%c{1}:%L-%m%n#root日志输出log4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.file=logs/all.loglog4j.appender.file.DatePattern='.'yyyy-MM-ddlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}%5p%c{1}:%L-%m%n#error日志输出log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.errorfile.file=logs/error.loglog4j.appender.errorfile.DatePattern='.'yyyy-MM-ddlog4j.appender.errorfile.Threshold=ERRORlog4j.appender.errorfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}%5p%c{1}:%L-%m%n#com.example.boot下的日志输出log4j.appender.myFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.myFile.file=logs/my.loglog4j.appender.myFile.DatePattern='.'yyyy-MM-ddlog4j.appender.myFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.myFile.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}%5p%c{1}:%L----%m%n3.代码中使用log4jimportorg.apache.log4j.Logger;privatefinalLoggerlogger=Logger.getLogger(.class);自定义视图在项目开发过程中,经常会涉及页面跳转问题,而且这个页面跳转没有任何业务逻辑过程,只是单纯的路由过程(例如:点击一个按钮跳转到一个页面)正常的写法是这样的:@RequestMap("/testmvc")publicStringview(){return"abc";}现在只需要这样统一写,此类必须在启动类所在者子:@ConfigurationpublicclassWebMvcConfigextendsWebMvcConfigurerAdapter{@OverridepublicvoidaddViewControllers(ViewControllerRegistryregistry){registry.addViewController("/testmvc").setViewName("/abc");}}页面:abc.flt或者abc.htmlhello即可到这个abc.flt文件自定义Starter在我们学习SpringBoot时都已经了解到starter是SpringBoot的组成部分,SpringBoot为我们提供了尽可能完善的封装,提供了一系列的自动化配置的starter插件,我们在使用spring-boot-starter-web时只需要在pom.xml配置文件内添加依赖就可以了,我们之前传统方式则是需要添加很多相关SpringMVC配置文件。而spring-boot-starter-web为我们提供了几乎所有的默认配置,很降低了使用框架时的复杂度。因此在使用xx.starter时你就不用考虑该怎么配置,即便是有一些必要的配置在application.properties配置文件内对应配置就可以了,,为什么我在application.properties配置对应属性后xx.starter就可以获取到并作出处理呢?下面我们带着这个疑问来编写我们自定义的starter让我们深入了解SpringBoot创建的starter项目创建普通maven项目,修改pom.xml,增加自动配置依赖org.springframework.bootspring-boot-autoconfigure
本文档为【02spring boot快速集成第三方技术详解springboot课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
BlackApple
暂无简介~
格式:pdf
大小:4MB
软件:PDF阅读器
页数:30
分类:委托代理
上传时间:2022-02-17
浏览量:0