• spring boot学习


    spring boot2.0 hello world

    环境、文档

    mvn3.3.9 eclipse4.5 spring boot2.0.3 RELEASE
    官方文档首页
    第一个spring boot应用 我们主要参考这一章节完成第一个应用。

    hello world->step by step

    1. POM文件参见 第一个spring boot应用 Creating the POM,Adding Classpath Dependencies,Creating an Executable Jar 几个章节中涉及到pom的都加进去。
      4.5的eclipse自带的m2e的maven插件,可能会报错。需要更新一下m2e。用传统的eclipse的在线安装插件的办法即可,更新地址是http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
    2. 创建Example类,源码参见文档Writing the Code章节。
    3. 在你工程目录下执行 mvn spring-boot:run命令。
      注意,mvn需要设置JAVA_HOME环境变量,另spring boot2.0需要JDK1.8以上。 所以系统要设置指向 JDK1.8 的JAVA_HOME
      执行完成后在浏览器中访问http://localhost:8080 就可以看到页面显示Hello World!
    4. 执行mvn package打包。
      注意两个问题:
      一是Example类是否加了注解 @SpringBootApplication,否则会出现 Unable to find main class的错。
      二是注意POM文件中packaging标签是否声明成了war,如果这样只会打出war包,不会打出jar包。
      java -jar spring_boot_2.0_demo-0.0.1-SNAPSHOT.jar 就可以启动刚才的应用了。

    spring boot2.0 从配置tomcat学习spring boot的配置

    场景:假设要改变tomcat的http的端口号,日志级别,数据源等
    几个特性:

    1. 支持引用maven/gradle构建工具的属性变量,这和我们用ant打包时为每个环境准备一套配置文件有点相似。
      74.1.1 Automatic Property Expansion Using Maven,支持这个特性的前置条件,文档中也有响应说明。
    2. 支持在src/main/resources/路径下的application.properties文件中覆盖默认配置, 比如:
      server.port=9080
      表示定义服务的端口监听在9080,如果用的嵌入的tomcat,那么这是tomcat的服务端口就监听在9080。
      3.除properties的方式改变配置外,还支持YML、JAVA API的方式。
      4.支持spring.config.location配置项、@PropertySource注解、SpringApplication.setSources() API等方式指定配置数据的路径。但是不管如何,application.properties要是存在,其配置信息仍然会被加载。
      5.properties文件中的值,支持占位符,占位符的值可以在命令行启动时设置:
      server.port=${port:8080}
      命令行启动时,指定--port=9000即可。
      6.支持profile配套的配置信息
      在命令行启动时通过-Dspring.profiles.active=production这样的方式指定prfoile的值,配置信息写在application-${profile}.properties文件中。
      我们如何找到spring boot支持的配置项?
      文档说加了@ConfigurationProperties注解的都是提供的默认配置项,诸如:ServerProperties、CacheProperties、MultipartProperties等。
      另 诸如数据源等配置,均可以以此方式进行。
      文档在Appendix A. Common application properties 章节列举了支持的配置项。
      另,日志等相关配置请参见 文档26.4章节。

    spring boot2.0 rest形式暴露一个简单的增删改查

    整合mybatis做了增删改查
    controller service dao等与传统的spring开发方式无异。
    数据源配置使用spring boot的方式进行配置:

    datasource

    spring.datasource.name=test
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/baasxx_ase?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=xxxx
    spring.datasource.type=com.zaxxer.hikari.HikariDataSource
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.maximum-pool-size=15
    注意 2.0.3版本不要使用淘宝的druid,因为他用了org.springframework.boot.bind.RelaxedDataBinder
    spring boot2.0.3不支持
    spring boot支持的数据源类型有Commons DBCP2、 tomcat-jdbc、HikariCP,请参见Connection to a Production Database
    章节,包括在什么情况下默认使用谁都有说明, 支持的配置项请参见DataSourceProperties类。
    mybatis的dao只需写接口,需要配置@MapperScan("org.cnblogs.simoncook.springboot2.demo.comment.dao")
    mybatis的配置文件扫描路径配置在application.properties
    mybatis.mapper-locations: classpath:mapping/*.xml
    contoller接口的json数据形式支持,需要加注解@ResponseBody 和 @RequestBody
    调试使用 远程启动调试的方式 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -jar target/spring_boot_2.0_demo-0.0.1-SNAPSHOT.jar

    spring boot2.0 事务管理

    用注解式,与spring的传统方式无异。

    spring boot2.0 AOP

    用注解式,与spring的传统方式无异。

    spring boot2.0缓存

    支持的种类:

    1. Generic
    2. JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, and others) 3. EhCache 2.x
    3. Hazelcast
    4. Infinispan
    5. Couchbase
    6. Redis
    7. Caffeine
    8. Simple

    示例

    通过配置项指定缓存类型:spring.cache.type=SIMPLE
    在主类上加注解@EnableCaching(我这里Example类,就是那个加了@SpringBootApplication注解的类)

    @Cacheable(value="dictItemsCache", key="#dictName")
        @Override
        public List<DictItem> queryDictItemByName(String dictName)
        {
            return dictDao.queryDictItemByName(dictName);
        }
    

    通过测试发现,第一次访问会发出查询sql(logging.level.org.cnblogs.simoncook.springboot2.demo=DEBUG #可以开启mybatis的sql日志),第二次访问不会。

    spring boot2.0 bean装配高级特性

    spring boot2.0监控

    web形式在2.0.3默认只开启三四个监控指标,其余的需要在application.properties文件中配置开启:
    management.endpoints.web.exposure.include=*
    参见文档50.2 Exposing Endpoints

  • 相关阅读:
    Laravel 5.2 使用 JWT 完成多用户认证 | Laravel China 社区
    (上线时清缓存)laravel 5.1 的程序性能优化(配置文件)
    linux计划任务及压缩归档
    用户及用户管理
    vim编辑器
    linux进阶命令
    权限管理
    linux基础命令2
    linu基础命令1
    连接Xshell
  • 原文地址:https://www.cnblogs.com/simoncook/p/9201402.html
Copyright © 2020-2023  润新知