SpringBoot:开发流程、集成各种技术

SpringBoot:开发流程、集成各种技术,第1张

SpringBoot:开发流程、集成各种技术 一、概述 1、SpringBoot四大核心

(1)自动配置:使用注解开发,基本不使用xml配置文件

(2)起步依赖:不用自己需要生么依赖加什么依赖(单点)

                    而是选择一套,如想用ssm---即ssm所需要的依赖都包含(套餐)

(3)Actuator:健康检测

(4)命令行界面:用不到

2、springBoot的启动是通过入口application类

     直接运行application中的main方法即可转到web页面,输入项目路径访问即可

     而不是通过发布项目,启动tomcat,debug运行等一系列 *** 作

3、常用注解总结

  (1)各层注解

  • 持久层(dao)
  • 业务层(service)

     @Compnent--将业务对象交给spring管理(spring包中)

     @Service(interfaceName=" ")---将服务接口暴露(dubbo包中)

              interfaceClass=接口名.class

              interfaceName=“包名+类名”接口的全限定类名

  • 控制层(controller)
  •            类上:@Controller
  •            方法上:@RequestMapping(value="请求名")
  •            注入业务层接口对象:@Reference(interfaceName=" ")
  • 注入其他层对象
  •          @Autowired
  • application类 (启动入口)
  •        @SpringBootApplication---开启spring注解配置(扫描spring容器中对象)
  •        @MapperScan(basePackages=" dao层mapper文件的路径")--扫描dao层映射文件     
  •        @EnableDubboConfiguration ---开启dubbo配置(扫描Dubbo容器中对象)

  (2)新增注解

  • 控制层类上@RestController---整个类中的方法返回值都是数据(json数据)

                @RestController=@Controller+@ResponseBody

  • 控制层方法上 @GetMapping(value=“请求名”)---查询数据

                          @RequestMapping(value=“/请求名”,method=RequestMethod.GET)

  •                      @PostMapping(value=“请求名”)----新增数据

                          @RequestMapping(value=“/请求名”,method=RequestMethod.POST)

  •                      @DeleteMapping(value=“请求名”)----删除数据

                        @RequestMapping(value=“/请求名”,method=RequestMethod.DELETE)

  •                     @PutMapping(value=“请求名”)----修改数据

                         @RequestMapping(value=“/请求名”,method=RequestMethod.PUT)

二、集成各种技术--加相应的依赖

    SpringBoot集成各种技术,主要是在工程配置文件pom.xml中加入相应的依赖,使用相关技术提供的功能,在满足相应技术规则的基础上进行编码。

1、集成SpringMVC
  • SpringBoot环境自动注入起步依赖,会搭建好springBooot和SpringMVC集成环境,

    自动生成一个启动入口类---可以识别到spring的所有注解

     @SpringBootAplication ---开启spring配置,扫描spring的所有注解 

             如:dao----@Mapper    service---@Service    controller--@Controller

  •  集成springMVC 注解:@RestController 类上

      @RestController=@Controller+@ResponseBody  表示整个控制层类中的方法都是返回json数据

2、集成jsp
  • pom.xml中引入jsp依赖
  • bulid标签中指定jsp的编译路径
3、集成mybatis
  •  mysal驱动依赖
  • Mybatis整合SpringBoot的起步依赖
  • 在pom.xml文件内手动指定扫描dao.xml
  • 利用mybatis的逆向工程生成实体类的bean,映射文件,dao接口
  • 配置SpringBoot核心文件:application.properties 设置数据库的配置信息
4、集成redis
  •  在pom.xml中添加redis数据类型的依赖
  • 在SpringBoot核心配置文件application.properties中添加redis配置:redis的主机ip、redis的端口号、redis的密码
5、 集成DUbbo
  • 工程配置文件中加依赖:Dobbu依赖、zookeeper注册中心依赖、接口工程依赖
  • 工程配置核心配置文件 application.properties配置对应的信息
6、集成Thymeleaf

     基于HTML的 Thymeleaf模板是一个前端页面模板---代替jsp,进行前端页面的数据展示

三、Thymeleaf 1、概述

在前端的resoures文件夹下的templates文件夹----thymeleaf模板页面

                                                static文件夹----除页面外的静态文件:图片,css,js等

    templates文件夹下新建html文件

(1)使用模板:html跟标签后加 xmlns:th=“http://www.thymeleaf.org”(命名空间)

(2)获取后端数据:th:text=“${变量名}”(类EL表达式)

   原理:命名空间---用来识别th标签(页面中才能使用thymeleaf的标签),

           进而通过Thymeleaf依赖来解析Thymeleaf的语法规则(下面获取变量代码)

2、jsp和Thymeleaf比较

不像jsp那样,需要加各种依赖

        jsp就是servlet,需要先编译,然后再去渲染

       而thymeleaf不需要,前后端分离,用户体验好

3、变量表达式

(1)标准表达式

th:text="  ${对象.后台变量名} " 

(2)选择变量表达式

th:object="${对象}">

    th:text=" *{后台变量名}"  

 

  (3)内敛表达式 

  th:inline=“text”>

           [[${要取的对象}]]

     

(4)取session中值

    th:text="   ${session.变量名} "  

(5)取Request中路径值

         需要内敛表达式

 

4、路径表达式

(1)绝对路径和相对路径---没有参数

  

(2) 绝对路径和相对路径---带参数

    @{请求路径?参数名1=值1&参数名2=值2}---自己写指定的参数

    @{‘请求路径?参数名=’+${后台参数名}}---后台获取参数

    @{请求路径(参数名1=${后台参数名1},参数名2=${后台参数名1})}-----后台取多个参数 

 (3)restful风格路径表达

     后台restful风格传参

  @RequestMapping(value="/test/{id}/{username}")

  public @ResponseBody String test(@PathVariable("id") Integer id,@PathVariable("username") String username){

      return "ID"+id+"username"+username;

}

     前台接收:多参数路径只能用拼接的方式,不能用()方式

'/test/'+${id}+'/'+${username}}">

(3)引用js和img静态文件的路径表达式

 

 

5、功能表达式--调用函数

(1)基本形式:    ${#内置功能对象.函数名()}

如:将curDate格式输出

${#dates.format(curDate.' yyyy-MM-dd:HH:mm:ss')} 

">

(2)其他内置对象

   

    [注]内置对象一般都以s结尾

四、SpringBoot整个过程 (一)工程框架   1、父工程
  • 普通的maven工程
  • 统一管理接口工程、提供者、消费者三个子工程,主要包括依赖版本号,使整个项目的不同工程的依赖版本号一致
  • 要求:pom.xml中,packaging标签内容设置为pom;src包删掉
2、接口工程
  • 实体类,实体类要实现序列化--implements Serialable 
  • service层接口 ,用来暴露项目功能到服务器  
3、提供者工程
  •  DAO层:通过mybatis逆向工程自动生成实体bean和dao层接口及其接口映射文件,其中实体bean在GeneratorMapper.xml中指定放在interface工程。
  • Service层:业务接口实现类
  • application类:开启dobbu,扫描dao
4、消费者工程
  • controller层处理请求
  • Tymeleaf页面展示请求结果
  • application类---开启dubbo配置
(二)核心配置文件

    1、工程 pom.xml 【管理依赖、插件等】

    2、数据库实体类映射文件 mapper.xml【管理表相关信息及其 *** 作】

   3、SpringBoot主配置文件 application.properties【统一管理数据库连接、配置等】

(三)代码编写

     1、每层的代码同原来其他框架基本一样,根据不同的业务功能,写不同的业务实现代码,总体格式满足MVC三层架构。

     2、SpringBoot工程是基于SSM、Dubbo、zookeeper的,各部分代码的编写基本和SSM类似,但是在工程架构上采用微服务思想,分为接口工程、提供者和消费者,使各工程分工明确,各司其职。

     3、zookeeper的作用 :管理和分配服务---动态管理服务

      注册中心管理机制:

     (1)先运行注册中心

     (2)启动dubbo服务,每一个服务提供者运行之后,都到注册中心中登记

          信息:ip  端口 服务名(接口名)----则注册中心中记录全部可用服务的信息

     (3)当消费者启动之后----先去访问注册中心,订阅需要适用的dubbo服务------注册中心将其需要的服务信息发送给消费者-----消费者根据这些信息去访问对应的服务

     (4)注册中心的心跳机制:注册中心会每个2s向dubbo服务发送请求,验证这些服务是否正常工作

          当某个服务没有响应时,注册中心会将信息表中该服务对应的信息删掉,并将此信息和新的dubbo服务地址推送给消费者---确保消费者访问错误问题

    每层代码结构可参考    SSM:Spring+SpringMVC+Mybatis、SpringMVC的web开发_@snow'的博客-CSDN博客

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5071804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存