zoukankan      html  css  js  c++  java
  • springboot的总结

    1.springboot的直接效果
      快速构建项目,完成配置

      1)继承的父项目

        可以使用<properites></properties>进行微调

      2)引入starter

        一个starter中包含了很多jar包

        在dependency标签中加入exclusions标签可以剔除此依赖中不想加载的jar包

      3)插件打包

        package   repackage

    springboot中的application.properties中配置了默认的配置

    2.springboot的优点:
      1)引入了starter包含需要整合的框架所有需要的jar包
      2)springboot可以以jar包的形式独立运行,运行一个springboot项目只需要通过java -jar xx.jar运行即可.
      3)内嵌servlet容器,springboot自带了tomcat,jetty,undertow,这样我们无须以war包形式部署项目
      4)自动配置spring:SpringBoot会根据会根据在类路径中的jar包、类,为jar包里的类自动配置bean,这会极大地减少我们要使用的配置;
      5)准生产的应用监控:Spring Boot提供基于http、ssh跟telnet对运行时的项目进行监控;
      6)Spring 4.x提供了条件注解,在Spring Boot中可以不用任何xml即可实现spring的所有配置;

    3.springboot项目的构建方式:
      1)在start.spring.io中下载项目
      2)在SpringBoot-cli.exe
        spring init.groovy
      3)sts

    4.springboot项目使用介绍
      1)SpringBoot通常有一个名为Application的入口类,其上加通常加@SpringBootApplication注解
      2)入口类里有一个main方法,这个main方法其实就是一个标准的java的应用程序入口
      3)在main方法中使用SpringApplication.run()启动Spring Boot项目

    5.springBoot的启动流程:
      1,@SpringBootApplication
      2,@SpringBootApplication中包含了@EnableAutoConfiguration注解
      3,@EnableAutoConfiguration注解又导入了EnableAutoConfigurationImportSelector类
      4,EnableAutoConfigurationImportSelector类的父类AutoConfigurationImportSelector中定义了方法 getCandidateConfigurations
      5,getCandidateConfigurations方法可以扫描spring.factories文件中的配置
      6,spring.factories文件在spring-boot-autoconfigure-1.5.17.RELEASE.jar 的 META-INF 中
      7,spring.factories 文件中声明了很多 java 配置类,但是每个配置类都是需要满足一定的条件才会执行(例如:@ConditionalOnClass、@ConditionalOnProperty 等)

    5.springboot注解的介绍:
      1)@SpringBootAppliaction是SpringBoot的核心注解,它是一个组合注解
        主要集成的注解有: @Configuration,@EnableAutoConfiguration,@ComponentScan
      2)@EnableAutoConfig让Spring Boot根据类路径中的jar包依赖,对项目进行自动配置
      3)Spring Boot会自动扫描@SpringBootApplication所在类的同级包以及下级包里的bean,建议入口类放置在groupId+arctifactID组合的包名下(classpath下);
      4)关闭特定的自动配置,应使用@SpringBootApplication注解的exclude参数,例如:
          @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
      5)@EnableAutoConfiguration注解又导入了EnableAutoConfigurationImportSelector类,此类中提供了getCandidateConfiguration方法扫描spring.factories文件
        spring.factories文件则申明了我们有哪些自动配置
          其中有@ConditionalOnBean(当容器里有指定的bean的条件下),

              @ConditionalOnClass(当类路径下有指定的类的条件下),

              @ConditionalOnJava(基于jvm版本作为判断条件)等等;
              这些注解都组合了@Conditional元注解,只是使用了不同的条件,在不同情况下自动注册不同的实例到ioc容器中。

    6.springboot对web的支持:
      注意:springBoot项目src/main/resources/下的statis和templates是用来放静态资源的,比如css,js,html等
    前台如果访问/css/index.css时,会从/static , /public /resourse/中任意路径寻找

    templates文件夹 用来存放 Thymeleaf 模板,这是用来做动态页面显示的,和jsp类似的东西。
    1)对web支持
    1,添加依赖
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    2,在Application.java的启动类,当前包或当前包子包中添加Controller
      controller写法和以前一致。
    3,启动springBoot项目,访问测试
      2)springBoot 的web项目打包运行
      打包过程会先测试在打包,
      在pom.xml的properties中添加<skipTests>true</skipTests>会跳过测试
    1,非jsp项目打成jar包运行
      直接点击项目右键选择run as --> maven bulid... --> goals : 输入package
    刷新项目,在target下可以找到打好的jar包

    在target中选中xxx.jar 右键-->show in-->terminal打开控制台,输入命令java -jar xxx.jar 回车
    启动项目完成
    打开浏览器测试访问

    2,jsp项目打成war包运行
    1,修改pom.xml中的jar为war
      <packaging>war</packaging>
      注:修改pom.xml保存以后会报错,更新maven项目即可
      选中项目 Alt+F5 ok
    2,输入maven命令 package 打包,可以参考上面步骤。
      直接点击项目右键选择run as --> maven bulid... --> goals : 输入package
    刷新项目,在target下可以找到打好的war包
    3,运行war包
    在target中选中xxx.war 右键-->show in-->terminal打开控制台,输入命令java -jar xxx.war 回车
    启动项目完成
    注:因为是一个正常的springboot项目,所有可以这样运行war包
    一般的war包需要放到tomcat/webapps/下 手动启动tomcat才能运行
    4,打开浏览器测试访问

    3)springboot对jdbc的支持
      其实是使用springFramework中的jdbcTemplate
      1,添加依赖
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>

      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
      </dependency>
    注:这里使用mysql数据库,oracle的ojdbc.jar在maven中的支持不太好。

    2,在dao层实现类中使用jdbcTemplate直接增删改查
    3,在application.properties文件中添加配置
    spring.datasource.url=jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    # 如果需要,可以执行指定的sql文件进行建表
    spring.datasource.schema=sql/test.sql

    4,使用测试类测试
    4)springboot对mybatis的支持
    使用注解的形式读取映射文件位置,使用application.properties配置读取mybatis需要的配置文件和映射文件等
    1,添加依赖
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    2,在src/main/resources/创建mybtis的配置文件和映射文件
    配置文件中可以不写或者补充部分settings标签配置
    映射文件以前怎么写现在还是怎么写
    3,在springboot的启动类 类名上添加 @MapperScan({"com.briup.mapper"})注解
    扫描映射接口所在包
    4,在application.properties文件中添加配置
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=root

    mybatis.config-location=classpath:mybatis/mybatis-config.xml
    mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
    mybatis.type-aliases-package=com.briup.bean

    5,测试类测试

    注:如果是使用注解完成mybatis 映射文件的配置,那么 下面两句配置不需要
    mybatis.config-location=classpath:mybatis/mybatis-config.xml
    mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
    直接在映射接口上 使用mybatis 的注解完成sql功能。

  • 相关阅读:
    一个弹框表单复用create,edit表单操作
    数组去重,防抖节流,渲染几万条数据不卡页面,32个手撕JS,彻底摆脱初级前端
    解决vue表单回显数据无法修改的问题
    正则
    将UTC时间转换为当地的时间
    Vue页面上实时显示当前时间,每秒更新
    互联网协议
    记录:批量重命名文件夹下的文件
    IdentityServer4 无法登录,一直跳转登录界面
    同解与等价
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12547311.html
Copyright © 2011-2022 走看看