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功能。

  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12547311.html
Copyright © 2011-2022 走看看