SpringBoot框架:第一章:基础配置和介绍

SpringBoot 介绍、快速入门、配置文件、整合其他框架 SpringBoot 提供了一种快速使用 Spring 的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到业务逻辑的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布,并作为 Spring 的顶级项目之一。--springboot工程需要继承的父工程--><parent></parent>--web开发的起步依赖--> 阅读详情

什么是Spring Boot?

Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用,简化新Spring应用的初始搭建以及开发过程,简化配置,用更简单的办法整合第三方其他技术。

使用spring boot有什么好处

其实就是简单、快速、方便!

平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

  1. 配置web.xml,加载spring和spring mvc
  2. 配置数据库连接、配置spring事务
  3. 配置加载配置文件的读取,开启注解
  4. 配置日志文件

...

配置完成之后部署tomcat 调试

使用sping boot到底有多爽

系统性归纳总结

一、SpringBoot的作用

  • 简化配置文件

  • 以更简单的方式整合第三方技术

    • Redis
    • ElasticSearch
    • MyBatis
    • ……

二、使用SpringBoot的套路

  • 加入需要的场景starter依赖
  • 配置properties或yml
  • 创建主启动类
  • 通过注解开启相关功能
  • 运行主启动类

三、HelloWorld

1.操作步骤

①创建Maven工程

②加入依赖

<!-- 继承SpringBoot官方指定的父工程 -->	
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.8.RELEASE</version>
</parent>

<dependencies>
	<!-- 加入Web开发所需要的场景启动器 -->
	<dependency>
		<!-- 指定groupId和artifactId即可,版本已在父工程中定义 -->
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
</dependencies>

③创建主启动类

④创建HelloWorldHandler,现在创建的hanlder不会自动扫描,因为只有主启动类的子包才会自动扫描

下面这个才正确

SpringBootHelloWorld

/**
 * 
 * 启动类
 *
 */
@SpringBootApplication
public class SpringBootHelloWorld {

	 public static void main(String[] args) {
	        SpringApplication.run(SpringBootHelloWorld.class, args);
     }
}

⑤启动

运行主启动类中的main方法启动SpringBoot程序。

⑥通过网页访问handler方法

2.原理探究

①核心机制

注意:

spring boot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,
DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean。
因为工程中如果没有关于dataSource相关的配置信息,当spring创建dataSource bean因缺少相关的信息就会报错。
在Application类上增加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
阻止spring boot自动注入dataSource bean,后面加上了druid有了dataSoure配置,就不需要加这个注解@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。

四、SpringBoot环境下配置文件

1.总述

SpringBoot环境下常用的配置文件有两种,一种是properties属性文件,一种是yml文件。二者各有特点,语法也有很大区别,但是最终效果基本一致。

2.properties文件使用

文件名:application.properties

properties文件语法格式:

server.port=8074
spring.datasource.url=jdbc:mysql://localhost:3306/gmall?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root

mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=192.168.0.100:2181

spring.dubbo.application.name=gmall-cart-service
spring.dubbo.protocol.name=dubbo
spring.dubbo.base-package=com.javawxid

logging.level.root=info

spring.redis.host=192.168.0.100
spring.redis.port=6379
spring.redis.database=0

3.yml文件的使用

①yml简介

yml是YAML(YAML Ain't Markup Language)语言的文件,以数据为中心,比json、xml等更适合做配置文件。

②yml语法

  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 大小写敏感

③YAML 支持的三种数据结构

  • 对象:键值对的集合
  • 数组:一组按次序排列的值
  • 字面量:单个的、不可再分的值

yml文件语法格式:

server:
  port: 8443 #开发环境会开启https
  ssl:
    key-store: keystore.p12
    key-alias: tomcat
    key-store-password: 123456
    key-store-type: PKCS12

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    druid:
      initial-size: 5 #连接池初始化大小
      min-idle: 10 #最小空闲连接数
      max-active: 20 #最大连接数
      web-stat-filter:
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据
      stat-view-servlet: #访问监控网页的登录用户名和密码
        login-username: druid
        login-password: druid

  data:
    mongodb:
      host: localhost
      port: 27017
      database: mall-port

  redis:
    host: 192.168.0.135 # Redis服务器地址
    database: 0 # Redis数据库索引(默认为0)
    port: 6379 # Redis服务器连接端口
    password: # Redis服务器连接密码(默认为空)
    jedis:
      pool:
        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 8 # 连接池中的最大空闲连接
        min-idle: 0 # 连接池中的最小空闲连接
    timeout: 3000ms # 连接超时时间(毫秒)

  rabbitmq:
    host: 192.168.0.135
    port: 5672
    virtual-host: /mall
    username: mall
    password: mall
    publisher-confirms: true #如果对异步消息需要回调必须设置为true

# 日志配置
logging:
  level:
    org.springframework.data.mongodb.core: debug
    com.macro.mall.mapper: debug
    com.macro.mall.portal.dao: debug

常见的SpringBoot依赖

pom.xml

   <!--继承spring-boot-starter-parent,要成为一个spring boot项目,首先就必须在pom.xml中继承spring-boot-starter-parent,同时指定其版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<!-- 环境参数,在普通maven项目中,需要在pom.xml中配置插件来修改jdk版本,utf-8编码等环境参数,在spring boot中则更加简单。
    在eclipse中按ctrl+左键点击上面的spring-boot-starter-parent,查看其源码 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 编译字符编码为utf-8 -->
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- 输出字符编码为UTF-8  -->
        <java.version>1.8</java.version><!-- jdK版本 -->
    </properties>


    <dependencies>
        <!--核心依赖,包括auto-configuration , logging和YAML。-->
  <!--      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>-->
        <!-- 测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--springmvc,代表web模块,在这个模块中含了许多JAR包,有spring相关的jar,内置tomcat服务器,jackson等,这些web项目中常用的的功能都会自动引入-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--数据库连接池-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- MyBatis 生成器 -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.3</version>
        </dependency>
        <!-- MyBatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--Mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <!-- dataSource相关的配置信息DruidDataSource-->
        <!--集成druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>


    </dependencies>

    <!-- 编译生成可执行jar文件,默认情况下,maven打包生成的jar文件是用来给其他项目依赖用的,是无法直接运行的。
    spring boot根据自生需要,提供了一个插件来生成可执行jar文件。在spring-boot-starter-parent源码中可以找到 -->
    <build>
        <!--在浏览器中的访问路径,如果将它改成helloworld,再执行maven&#45;&#45;update,这时运行项目的访问路径是
        http://localhost:8080/helloworld/   而不是项目名的  http://localhost:8080/test-->
        <!--<finalName>demo</finalName>-->
        <!-- 在自己项目的pom.xml中声明这个插件,就会生效 -->
        <plugins>
            <!-- maven插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Unity2020版本使用Kinect的修复(附粒子人像互动demo) Unity2020版本使用Kinect的修复附粒子人像互动demo工程版本及说明工程demo说明演示效果工程地址 工程版本及说明 Unity2020.1.3f1c1 因为想用(学习)jpのK神做的一些粒子效果,由于他使用的是2020的新技术故需要把Kinect插件导入进2020版本,但2020版本已经不支持GUIText及GUITex这些操作了 因此需要修复成UGUI。 工程demo说明 打开工程后直接进入这个场景即可,如果只是想看粒子效果则需要把KinectController关掉,然后开启Beta O 阅读详情

相关推荐

ULN2003驱动28BYJ-48步进电机详解(附:51 32代码讲解)

本文介绍了28BYJ-48步进电机的驱动原理以及注意事项,并展示了极简 32 51驱动代码

qq_41818650的博客 1万+

用户设置与virtual host配置

1.进入localhost:15672yemian   然后选择Admin菜单。      2.添加用户   caojun/123456      3.效果      4.virtual hosts添加   相当于db。   /cjhost,一般以/开头。       5.效果      6.对用户进行授权      然后选择:      7.登录caojun账号     ...

weixin_34198797的博客 759

IBM Storwize V3700存储维护实战:硬盘更换、电源模块热插拔与带外管理IP配置

在企业IT基础设施中,存储阵列是数据持久化的核心组件,其稳定运行直接关系到业务连续性。存储阵列通常采用RAID技术实现数据冗余,并通过热插拔、冗余电源等设计保障高可用性。带外管理则提供了独立于业务网络的硬件级监控与管理通道,是运维的关键手段。本次实战以一台IBM Storwize V3700存储阵列为例,详细记录了在业务低峰期,依据严谨的操作流程,对出现SMART预警的硬盘进行在线更换,并对有异响的冗余电源模块实施热插拔更换。针对管理界面强制要求设置VIP才能配置带外管理地址的限制,文章提供了通过SSH命令

weixin_29172963的博客 304

SpringBoot Rabbit 多IP多 virtual host 配置

本文记录了在一个 RabbitMQ 中添加多个 virtual host(又叫vhost)时与 SpringBoot 相关的配置文件、RabbitTemplate 和 RabbitListener 的配置方法。

u011447403的专栏 5097

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

三菱FX3U PLC红绿灯ST编程实战:从基础逻辑到急停功能完整实现

本文以十字路口红绿灯控制为例,详细讲解了三菱FX3U PLC使用ST编程的完整实战过程。内容涵盖从基础时序逻辑、状态机设计,到急停功能、黄灯闪烁、昼夜模式切换等高级功能的实现,并提供了代码优化与调试技巧,帮助工程师掌握结构化文本在工业控制中的清晰、结构化应用。

weixin_29070861的博客 535

花了3天总结的RabbitMQ实用技巧,有点东西

以前看过的关于RabbitMQ核心消息模式的文章都是基于Java API的,最近看了下官方文档,发现这些核心消息模式都可以通过Spring AMQP来实现。于是总结了下RabbitMQ的实用技巧,包括RabbitMQ在Windows和Linux下的安装、5种核心消息模式的Spring AMQP实现,相信对于想要学习和回顾RabbitMQ的朋友都会有所帮助。 简介 RabbitMQ是最受欢迎的开源消息中间件之一,在全球范围内被广泛应用。RabbitMQ是轻量级且易于部署的,能支持多种消息协议。Rabb.

weixin_50666791的博客 540

引入高分辨率特征层保持的YOLOv10小目标增强:从思路到完整实现

大概两个月前,我在做一个无人机航拍图像检测的项目,目标是识别图片里的小型车辆和行人。用的数据集是VisDrone,相信做小目标检测的朋友对这个数据集都不陌生。一开始我直接跑了官方YOLOv10的代码,结果在tiny vehicle这一类上mAP50只有可怜的0.312。那些小目标基本就是几个像素点,YOLOv10在三次下采样之后,这些小目标的特征几乎就消失不见了。 后来我折腾了大概三周,尝试了各种方法:改anchor、调loss权重、做数据增强、甚至考虑过换检测头。最后发现最有效的还是引入一个高分辨率特征

YOLO 51

Springboot 监听同一个RabbitMQ的多个虚拟主机Virtual-Host

目录 配置信息application.properties 配置类RabbitMqConfig 监听消息示例 场景:需要监听 同一个RabbitMQ下的 不同的虚拟主机下的 队列 来完成数据流转 配置信息application.properties my.rabbitmq.host=你的ip my.rabbitmq.port=你的port my.rabbitmq.username=你的username my.rabbitmq.password=你的password my.rabbitmq.first

1834

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1508

【产品经理修炼之道】- 优惠券系统从入门到精通(一)

为了满足企业的优惠券业务,优惠券系统一般需要包含哪些功能?这篇文章里,作者从架构、功能等维度做了拆解,一起来看看吧。此部分主要讲解为满足公司优惠券业务,需要优惠券系统必须包含哪些功能,即优惠券架构图。

xiaoli8748的专栏 1810

Spring Boot整合RabbitMQ之发布与订阅模式(fanout)

Spring Boot整合RabbitMQ之发布与订阅模式

cssweb_sh的博客 3308

MacBook M芯片第二篇:Homebrew安装

Homebrew是MacOS/Linux平台的软件包管理工具,提供便捷的安装、卸载、更新等功能。

码农魏轩 895

SpringBoot框架:第一章:基础配置和介绍,讲的明明白白

yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比json、xml等更适合做配置文件。总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

m0_60607971的博客 824

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringBoot框架:第一章:基础配置和介绍,linux架构设计

DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean。 因为工程中如果没有关于dataSource相关的配置信息,当spring创建dataSource bean因缺少相关的信息就会报错。 在Application类上增加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 阻止spring boot自动注入dataSource b

m0_65322636的博客 120

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringBoot框架:第一章:基础配置和介绍,java后端开发工程师面试题

yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比json、xml等更适合做配置文件。小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

2401_83621918的博客 719

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vue+springboot快速入门

**环境配置**:为了能够顺利地进行SpringBoot和Vue的开发,需要配置相应的开发环境。- **基础概念**:Spring Boot是一个极为流行的Java框架,它可以简化新Spring应用的初始搭建以及开发过程。- **静态资源配置**:在Spring Boot中,可以通过配置文件指定静态资源的访问路径,例如,可以将resources/static目录映射为服务器的根目录,或者通过spring.web.resources.static-locations配置自定义存放目录[^5^]。

weixin_61995809的博客 515

SpringBoot框架详细介绍

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性[IOC AOP DI],而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决springboot:----为了简化spring工程的初始化搭建和开发过程。

不惧困难 顽强拼搏 5万+

SpringBoot基础 -- 框架介绍

SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。

qq_64037280的博客 5895

Spring Boot框架基础介绍

Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到了广泛应用,本文将介绍 Spring Boot 的特性、优势以及使用方法。

Java+GO+JS全栈工程师-鹤冲天的博客:编程辅导~商务合作~技术交流 2万+

SpringBoot框架介绍

什么是SpringBoot 什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。 所有的技术框架的发展似乎都遵循了一条主线规律:从一个复杂应用场景 衍生 一种规范框架,人们只需要进行各种配置而不需要自己去实现它,这时候强大的配置功能成了优点;发展到一定程度之后,人们根据实际生产应用情况,选取其中实用功能和设计精

weixin_45608165的博客 8884
上一篇: Dubbo 第一章:详情版
下一篇: Spring Cloud:第一章:基本介绍
Java程序员廖志伟
Java程序员廖志伟 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 2万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值