SpringBoot

添加spriingboot的起步依赖:

SpringBoot要求,所有的SpringBoot项目都必须要继承SpringBoot的起步依赖spring-boot-starter-parent

<parent>   

     <groupId>org.springframework.boot</groupId>   

     <artifactId>spring-boot-starter-parent</artifactId>  

  <version>2.0.1.RELEASE</version>

</parent>

开发web功能导入web坐标(这里面有spring/springmvc等的坐标):

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

<dependencies> 

       <dependency>     

               <groupId>org.springframework.boot</groupId>       

                <artifactId>spring-boot-starter-web</artifactId>  

      </dependency>

</dependencies>

开发web功能需要导入


测试SpringBoot代码:


@Controller定义一个控制器

@RequestMapping("/")检测到有此注解,处理请求

@ResponseBody将java对象转换为json格式的数据,responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,谢瑞到response对象的body区,通常用来返回JSON数据或者XML数据。

可以通过注解,访问8080服务器,通过/quick域名,处理return返回的值

热部署配置,导入此配置无需重启SpringBooot:

Idea软件热部署时候,需要对软件进行设置自动编译,

首先在Settings里面,搜索Compiler,找到Build project automatically(自动运行项目)选中,然后按Shift+Ctrl+Alt+/,选择Registry,找到compiler.automake.allow.when.app.running选中

配置完成自动编译后,成功启动热部署

快速创建SpringBoot项目:


@SpringBootApplication包含以下三个功能等:

@EnableAutoConfiguration自动配置核心注解

@SpringBootConfiguration是一个类级别的注释,提供了应用程序配置

@ComponentScan自动扫描组件,就是告诉Spring从哪里找到Bean

Application.properties配置文件:

#配置服务器的端口号

server.port=8081

#配置web应用的名称

server.servlet.context-path=/demo

配置文件先加载yml在加载yaml在加载properties,优先级properties最高

Yml文件配置的几种方式:

获取配置信息的方式一:@value

获取配置信息的方式二:@ConfigurationProperties(prefix = “”)根据get、set方法自动映射

出现警告,配置执行器

 

<dependency>   

 <groupId>org.springframework.boot</groupId>  

  <artifactId>spring-boot-configuration-processor</artifactId

   <optional>true</optional>

</dependency>

配置执行器后,在配置yml文件中会有相对应的提示辅助

SpringBoot整合Mybatis:

Pom.xml加入的配置:

<dependency>   

         <groupId>org.mybatis.spring.boot</groupId>   

         <artifactId>mybatis-spring-boot-starter</artifactId

          <version>1.1.1</version>

</dependency>-->

<dependency

       <groupId>mysql</groupId

       <artifactId>mysql-connector-java</artifactId>

</dependency>-->

Application.Properties配置:

#数据库连接信息spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=root#配置mybatis的信息#spring集成Mybatis环境#pojo别名扫描包mybatis.type-aliases-package=com.itheima.domain#加载Mybatis映射文件mybatis.mapper-locations=classpath:mapper/*Mapper.xml


Resources.mapper.UserMapper.xml配置:

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.itheima.mapper.UserMapper">    <select id="queryUserList" resultType="user">        select * from user    </select></mapper>

接口:

控制器:

SpringBoot启动程序

SpringBoot整合Junit:

SpringBoot整合JPA:

Pom.xml加入的配置:

<dependency

   <groupId>org.springframework.boot</groupId>    

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>-->

<dependency>   

 <groupId>mysql</groupId

   <artifactId>mysql-connector-java</artifactId>

</dependency>

Application.Properties配置:

#DB Configuration:

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=root

#JPA Configuration:

spring.jpa.database=MySQL

spring.jpa.show-sql=true

spring.jpa.generate-ddl=true

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

整合jpa的实体类需要注解注入:

接口:

<dependency>   

 <groupId>javax.xml.bind</groupId>   

 <artifactId>jaxb-api</artifactId>  

  <version>2.3.0</version>

</dependency>-->

测试:

SpringBoot整合Redis:

Pom.xml加入redis起步依赖配置:

添加Redis起步依赖--><

dependency>   

 <groupId>org.springframework.boot</groupId

   <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>-->


Application.Properties配置:

#Redis

spring.redis.host=127.0.0.1

spring.redis.port=6379

 

测试:

Springboot整合undertow(高性能的web服务器):

Undertow是RedHat(红帽公司)的开源产品,采用java开发,是一款灵活的、高性能的web服务器,提供了基于NIO的阻塞/非阻塞APIs,也是Wildfly的默认Web容器。可以通过组合一系列小型处理器来构建一个web服务器,被设计成了完全可嵌入式的,所以也叫嵌入式容器。 码云下载undertow项目:

https://gitee.com/mirrors/undertow?_from=gitee_search

 

独立使用Undertow需要的依赖:

<dependency>   

 <groupId>io.undertow</groupId>  

  <artifactId>undertow-servlet</artifactId>  

  <version>2.1.3.Final</version></dependency>

<dependency>   

 <groupId>io.undertow</groupId>  

  <artifactId>undertow-core</artifactId

   <version>2.1.3.Final</version></dependency>

<dependency>  

  <groupId>io.undertow</groupId>   

 <artifactId>undertow-websockets-jsr</artifactId>   

 <version>2.1.3.Final</version>

</dependency>

首先、下载可以直接生成启动类的插件JBLSpringBootAppGen:

然后在src目录下,右键选JBLSpringBootAppGen:

Undertow启动成功,版本2.1.3

Application.yml

server:  port: 8898  undertow:    #http post请求最大的大小    max-http-post-size: 0    #设置IO线程数,它主要执行非阻塞的任务,他们会负责多个连接,默认配置每个CPU核心的一个线程    io-threads: 4    #阻塞任务线程池, 当执行类似servlet请求阻塞操作,undertow会从这个线程池中取得线程,他的值设置取决于系统负载    worker-threads: 20    #以下配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理#每次buffer的空间大小,越小的空间被利用越充分    buffer-size: 1024    #是否分配直接内存    direct-buffers: true    accesslog:      # Undertow日志存放目录      dir: D://      #是否启动日志      enabled: true      #日志模式      pattern: common      #日志文件名前缀      prefix: access_log.      #日志文件名后缀      suffix: log

 

在项目中使用Undertow:

使用Undertow作为项目的服务器

首先在依赖中去除Tomcat

<dependency

       <groupId>org.springframework.boot</groupId>   

     <artifactId>spring-boot-starter-web</artifactId>  

      <exclusions>     

       <exclusion>          

      <groupId>org.springframework.boot</groupId>         

       <artifactId>spring-boot-starter-tomcat</artifactId>       

         </exclusion>   

         </exclusions>

</dependency>

添加Undertow的依赖:

<dependency>   

 <groupId>org.springframework.boot</groupId>  

  <artifactId>spring-boot-starter-undertow</artifactId>

</dependency>

 

然后(注意undertow的使用版本)

引入:core:

<dependency>    

    <groupId>io.undertow</groupId>   

     <artifactId>undertow-core</artifactId>   

     <version>*.*.*.Final</version>

</dependency>


引入servlet:

<dependency>    

<groupId>io.undertow</groupId>  

  <artifactId>undertow-servlet</artifactId>  

  <version>*.*.*.Final</version>

</dependency>


引入websockets-jsr:

<dependency

   <groupId>io.undertow</groupId>   

 <artifactId>undertow-core</artifactId>  

  <version>*.*.*.Final</version>

</dependency>

 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 223,277评论 6 521
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,487评论 3 400
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 170,114评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,367评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,352评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,919评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,328评论 3 426
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,278评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,808评论 1 321
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,882评论 3 343
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,005评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,672评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,344评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,839评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,959评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,481评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,031评论 2 361

推荐阅读更多精彩内容