学习笔记:JavaEE开发的颠覆者SpringBoot实战(五)spring boot基础

JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统(附源码) JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发的简易版银行管理系统,本文主要介绍了一个用 JavaEE + Oracle 开发的简易版银行信息管理系统,具备用户管理、银行卡管理、存取款管理、贷款管理、业务提醒、统计查询等功能。用到了Oracle数据库存储过程、触发器等功能。展示了各个页面效果和开发的流程、步骤、总结。 阅读详情

一.概述

1.什么是spring boot

它使用“习惯优于配置”的理念让你的项目快速运行起来。使用它很容易创建一个独立运行,准生产级别的基于spring框架的项目,使用它可以不用或者只需很少的spring配置。

2.spring boot核心功能

  • 独立运行的spring项目:可以以jar包独立运行,运行命令:java -jar xx.jar
  • 内嵌servlet容器:可以选择内嵌tomcat,jetty,故无须war部署
  • 提供starter简化maven配置:提供一系列的starter pom来简化maven依赖加载(即相关的jar包加载)。如,spring-bootstarter-web
  • 自动配置spring:根据在类路径中的jar包,类,为jar包里的类自动配置bean
  • 准生产的应用控制:提供基于http,ssh,telnet对运行时的项目进行监控
  • 无代码生生和xml配置:通过java配置和注解配置组合使用来实现

3.spring boot的优缺点

优点:

  • 快速构建项目
  • 对主流开发框架的无配置集成
  • 项目可独立运行,无须外部依赖servlet容器
  • 提供运行时的监控
  • 与云计算的天然集成

缺点:

  • 文档较少
  • 必须以spring为基础框架

 

二.spring boot快速搭建

1.web端部署

http://start.spring.io

2.工具部署(IDEA)

Spring Tool Suite :新建Spring Starter Project项目

IDEA :新建Spring Initializr项目

三.Maven手工构建spring boot

1 新建一个空的maven项目

2 修改pom.xml

2.1 添加spring boot的父级依赖spring-boot-starter-parent

它用来提供相关的maven默认依赖,相关依赖可以省去version标签.具体相关依赖,可查看maven本地库.m2\repository\org\springframework\boot\spring-boot\spring-boot-dependencies\2.1.6RELEASE\spring-boot-dependencies-2.1.6RELEASE.pom

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath />
</parent>

2.2 在dependencies添加web支持的starter pom

这样就添加了web的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.3 添加spring boot的编译插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spirng-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2.4.简单演示

@RestController
@SpringBootApplication //spring boot项目的核心注解,主要目的是开启自动配置
public class DemoApplication{

    @RequestMapping("/")
    public String index(){
        return "hello spring boot";
    }

    //main方法,主要作用是作为项目启动的入口
    public static void main(String[] args){
        SpringApplication.run(DemoApplication.class,args);
    }    

}

maven名利运行:

mvn spring-boot:run

或者在该类上右键Run

运行后访问:localhost:8080

 

四.基本配置

1.入口类和@SpringBootApplication

spring boot 通常由要给名为*Application的入口类,入口类里有要给main方法,这个main方法其实就是要给标准的java应用的入口方法。在main方法中使用SpringApplication.run(DemoApplication.class,args),启动项目。

@SringBootApplication 是spring boot的核心注解,它是一个组合注解,源码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration  //让spring boot根据类路径中的jar包依赖为当前项目进行自动配置
@ComponentScan
public @interface SpirngBootApplication{
    Class<?>[] exclude() default{};
    String[] excludeName() default{};
}

2.关闭特定的自动配置

@SpringBootApplication(exclude={DataSOurceAutoConfiguration.class})

3.定制banner

3.1 修改banner

在src/main/resources下新建一个banner.txt,文件里的图案可以替换默认的。

3.2 关闭banner

main里的内容修改为:

SpringApplication app = new SpringApplication(DemoApplication.class);
app.setShowBanner(false);
app.run(args);

4. spring boot的配置文件

spring boot使用要给全局的配置文件application.properties或application.yml,放置在src/main/resources目录胡总和类路径的/config下。

spring boot的全局配置文件的作用是对一些默认配置的配置值进行修改。如:将tomcat的默认端口8080修改为9090,并将默认的访问路径“/”修改为“/helloboot”

application.yml

server:
 port: 9090
 contextPaht: /helloboot

5.starter pom

Spring Boot application starters

名称描述
spring-boot-starter核心Spring Boot starter,包括自动配置支持,日志和YAML
spring-boot-starter-actuator生产准备的特性,用于帮你监控和管理应用
spring-boot-starter-amqp对”高级消息队列协议”的支持,通过spring-rabbit实现
spring-boot-starter-aop对面向切面编程的支持,包括spring-aop和AspectJ
spring-boot-starter-batch对Spring Batch的支持,包括HSQLDB数据库
spring-boot-starter-cloud-connectors对Spring Cloud Connectors的支持,简化在云平台下(例如,Cloud Foundry 和Heroku)服务的连接
spring-boot-starter-data-elasticsearch对Elasticsearch搜索和分析引擎的支持,包括spring-data-elasticsearch
spring-boot-starter-data-gemfire对GemFire分布式数据存储的支持,包括spring-data-gemfire
spring-boot-starter-data-jpa对”Java持久化API”的支持,包括spring-data-jpa,spring-orm和Hibernate
spring-boot-starter-data-mongodb对MongoDB NOSQL数据库的支持,包括spring-data-mongodb
spring-boot-starter-data-rest对通过REST暴露Spring Data仓库的支持,通过spring-data-rest-webmvc实现
spring-boot-starter-data-solr对Apache Solr搜索平台的支持,包括spring-data-solr
spring-boot-starter-freemarker对FreeMarker模板引擎的支持
spring-boot-starter-groovy-templates对Groovy模板引擎的支持
spring-boot-starter-hateoas对基于HATEOAS的RESTful服务的支持,通过spring-hateoas实现
spring-boot-starter-hornetq对”Java消息服务API”的支持,通过HornetQ实现
spring-boot-starter-integration对普通spring-integration模块的支持
spring-boot-starter-jdbc对JDBC数据库的支持
spring-boot-starter-jersey对Jersey RESTful Web服务框架的支持
spring-boot-starter-jta-atomikos对JTA分布式事务的支持,通过Atomikos实现
spring-boot-starter-jta-bitronix对JTA分布式事务的支持,通过Bitronix实现
spring-boot-starter-mail对javax.mail的支持
spring-boot-starter-mobile对spring-mobile的支持
spring-boot-starter-mustache对Mustache模板引擎的支持
spring-boot-starter-redis对REDIS键值数据存储的支持,包括spring-redis
spring-boot-starter-security对spring-security的支持
spring-boot-starter-social-facebook对spring-social-facebook的支持
spring-boot-starter-social-linkedin对spring-social-linkedin的支持
spring-boot-starter-social-twitter对spring-social-twitter的支持
spring-boot-starter-test对常用测试依赖的支持,包括JUnit, Hamcrest和Mockito,还有spring-test模块
spring-boot-starter-thymeleaf对Thymeleaf模板引擎的支持,包括和Spring的集成
spring-boot-starter-velocity对Velocity模板引擎的支持
spring-boot-starter-web对全栈web开发的支持,包括Tomcat和spring-webmvc
spring-boot-starter-websocket对WebSocket开发的支持
spring-boot-starter-ws对Spring Web服务的支持

6.使用xml配置

特殊要求下,可以通过@ImportResource来加载xml配置。如果:

@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})

五.外部配置

1.命令行参数配置

比如,修改tomcat端口号:

java -jar xx.jar --server.port=9090

2.常规属性配置

注入配置properties文件里的值,在spring boot里,我们只需要在配置文件里卖弄定义属性,直接使用@value注入即可。

application.yml

server:
 port: 9090
 contextPaht: /helloboot

book:
 author: shenhaiming
 name: spring boot

类注入

public class Demo{
    @Value("${book.author}")
    private String bookAuthor;
    
    @Value("${book.name}")
    private String bookName;

}

3.类型安全的配置

3.1 基于properties

配置mydemo.properties

author.name=shm
author.age=32

bean

@Component
@PropertySource(value="classpath:mydemo.properties")
@ConfigurationProperties(prefix="author")
public class AuthorSettings{
    private String name;
    private Long age;

    //set
    //get

}

3.2 基于yml

配置mydemo.yml

author:
  name: shm
  age: 32

bean

@Component
@PropertySource(value="classpath:mydemo.yml")
@ConfigurationProperties(prefix="author")
public class AuthorSettings{
    @Value("${name}")
    private String name;
    @Value("${age}")
    private Long age;

    //set
    //get

}

三.日志配置

loggin.file=D:/mylog/log.log  #配置日志级别
loggin.level.org.springframework.web=DEBUG #配置日志文件

四.Profile配置

Profile是spring用来针对不同的环境对不同配置提供支持的,全局profile配置使用application-{profile}.properties

通过application.properties中设置spring.profiles.active=prod来指定活动的Profile

application-prod.properties

server.port=8080

application-dev.properties

server.port=8989

application.properties

spring.profiles.active=dev

五.spring boot运行原理

查看项目中已启动和未启动的自动配置报告

  • 运行jar是增加--debug参数:java -jar xx.jar --debug
  • 在配置application.properties中设置属性:debug=true
  • IDEA中选择Run Configurations --> Environment --> VM options : -Ddebug

1.运作原理

@EnableAutoConfiguration源码

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({EnableAutoConfigurationImportSelector.class,AutoConfigurationPackages.Registrat.class})
public @interface EnableAutoConfiguration{
    Class<?>[] exclude() default{};
    String[] excludeName() default{};
}

这里@Import注解导入的配置功能,EnableAutoConfigurationImportSelector使用SpringFactoriesLoader.loadFactoryNmaes方法来扫描具有META-INF/spring.factories文件的jar包,而我们的spring-boot-autoconfigure-xxx.jar里面就有个spring.factories文件,此文件中声明了又哪里自动配置(#auto configure)

2.核心注解

可见:https://blog.youkuaiyun.com/zwmnhao1980/article/details/80746877

JavaEE开发的颠覆者SpringBoot实战完整版pdf和源码第二部分(5-2) 立即下载

相关推荐

JavaEE开发的颠覆者完整版.pdf

JavaEE开发的颠覆者完整版.pdf 云盘链接

‘org.springframework.boot:spring-boot-starter-parent’ not found

Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.7.5 in central。

qq_45171544的博客 1万+

JavaEE开发的颠覆者SpringBoot实战完整清晰版PDF

上传的是JavaWW开发的颠覆者SpringBoot实战完全高清版,十分清晰,不清晰你来找我,200多M,适合学习SpringBoot的开发者下载

IDEA创建Spring Boot项目

初次接触Spring Boot框架,随笔记下遇到的问题和解决的方法, 一:创建Spring Boot项目 1.file--new --project 2. 3. 4.确定项目名、地址 首次创建Spring Boot 会比较慢,之后就会很快了 添加依赖时,发生导包失败 Dependencies出现红色波浪时,为导包失败 解决方案: 找到本地maven仓库,...

Audrey_Li的博客 339

JavaEE开发的颠覆者 Spring Boot实战 完整版.zip

JavaEE开发的颠覆者 Spring Boot实战 完整版.zip,SpringBoot开发实例。

开发的颠覆者springboot实战

开发的颠覆者springboot实战,没有缺失,eclipse、idea的教程都有

《JavaEE开发的颠覆者 SpringBoot实战》 阅读笔记

第一部分 点睛Spring 4.x 第1章 Spring 基础 1.1 Spring概述 1.1.1 Spring简史 第一阶段:xml配置 在Spring 1.x时代,是使用xml配置Bean,随着项目的扩大,在不同的xml配置...

墨雨的博客 1567

JavaEE开发的颠覆者SpringBoot实战完整版pdf和源码第四部分(5-4)

JavaEE开发的颠覆者SpringBoot实战完整版pdf和源码第四部分(5-4)

《javaEE 开发的颠覆者,Spring boot实战》

本书简介 1 推荐使用@configuration @bean 的Java配置来替代xml。 2 习惯优于配置的原则。快速搭建项目 3 在第一部分,介绍了快速Spring4.x各个知识点:基础配置、常用配置、高级配置等。 4 在第二部分,介绍了Spring MVC 的各个知识点。 5 在第三部分,才是核心的介绍Spring boot。 Spring boot 核心 -各种配置

a314773862的博客 7697

(2024,DDPM,DDIM,流匹配,SDE,ODE)扩散:基础教程

本文的目标是尽可能简单地教授扩散。第一节介绍扩散的基本原理。第二节和第三节展示如何构建随机和确定性扩散采样器。第四部分介绍了密切相关的流匹配,可看作是扩散的推广。​第五节,强调实践中最重要的一些设计选择,包括采样器、噪声时间表和参数化方法。

qq_44681809的博客 1万+

动态规划法:n*m方格前进问题

在一个n*m的方格中,m为奇数,放置有n*m个数,方格中间的下方有一人,此人可按照正前方相临的五个方向(方格)前进但不能越出方格。人每走过一个方格必须取此方格中的数。要求找到一条从底到顶的路径,使其数相加之和为最大。输出和的最大值。 算法设计: 可以使用动态规划方法,从顶部开始,将第二排的每个数加上顶部第一排的最优解,将6排的问题缩小为5排的问题,然后重复该操作,直到底部最后一排,此时

Winifred_1997的博客 4675

JavaEE开发的颠覆者 Spring Boot实战

网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击“普通下载”) 购买正版 封页 内容简介 在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Ja...

CiCi岛的专栏 1514

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THD+N,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。

weichen_78的博客 4697

JavaEE介绍及Springboot入门

目录哈喽!各位老铁,从本期开始我会给大家分享JavaEE的学习分享,javaEE是javaEE的扩展,使用起来更加高效便捷,让我们一起开始JavaEE的学习吧!目录1.JavaEE发展历史2.JavaEE主要学习内容3.JavaEE怎么学习4.Maven配置一、JavaEE发展历程Java EE的起源可以追溯到J2EE(Java 2 Platform, Enterprise Edition),它是Java SE(Java Standard Edition)的一个扩展,主要用于企业级应用开发。

2301_80651010的博客 1279

一文学会Inner-MPDIoU:YOLOv11边界框回归优化全解析

Inner-MPDIoU 凭借“辅助边框+最小点距离”的双重创新,成功解决了传统 IoU 损失在小目标、遮挡场景、位置偏差场景下的收敛和判别难题,为 YOLOv11 注入了更强的边框回归能力。从原理剖析到代码集成,本教程已为你铺就了一条“定位精度跃升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“定位精准”的答卷——相信我,当你看到检测框完美贴合目标的那一刻,你会明白这份尝试的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在边框回归领域的边界。

know_F0727的博客 140

VOS中历史话单显示通话会话超时中断详解

假设一种场景:  主叫拨打被叫,主叫方异常离线,被叫方接听,被叫方发送200ok至VOS,VOS传送200ok给主叫,但是主叫方未给出正常ack回应,VOS重发几次后(根据SIP参数设定的重发机制),然后VOS服务器会中断话务,历史话单终止原因为会话超时。 参考呼叫分析信令如下图: ...

非著名运维的博客 5016

JavaEE颠覆者:spring-boot实战随书源码

在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Bo

lice1010的博客 2862

Spring Boot入门(02):【教程】轻松搭建Spring Boot开发环境,启动你的第一个Web项目!

快速搭建开发环境和启动项目是每个开发人员必备的技能。本文将为您提供一些简单易懂的方法和技巧,以帮助您快速搭建开发环境和启动项目。我们将介绍如何选择适合您的开发工具、配置您的操作系统、安装必要的软件包和依赖项,并开始编写您的第一个应用程序。无论您是一位新手还是一位经验丰富的开发人员,本文都会给您提供有用的信息和实用的建议,让您在最短时间内快速搭建和启动开发项目。

**My Coding Family** 22万+

《JavaEE开发的颠覆者:Spring Boot实战》笔记

待写

philsonzhao的博客 295

AI上推荐 之 隐语义模型(LFM)和矩阵分解(MF)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

CATIA文件的网页预览方案

CATIA是工业设计中广泛使用的专业软件,产出`.CATPart`或 `.CATProduct`等文件类型,当资产数量较大时,我们希望快捷预览这些文件,就有了`CATPart`文件网页预览的需求 但我们知道,网页上无法直接渲染`CATPart`这种复杂的文件, CATIA生成的文件(如 `CATPart` 和 `CATProduct`)不仅包含三维几何信息(例如点、线和曲面),还涵盖了丰富的元数据与专业设计特征。 那有没有办法,能实现CATIA文件在网页上的便捷预览?

weixin_44211633的博客 1445

学习笔记:JavaEE开发的颠覆者SpringBoot实战(六)spring boot的web开发

一.spring boot的web开发支持 spring boot提供了spring-boot-starter-web为web开发予以支持,spring-boot-starter-web为我们提供了嵌入的tomcat以及spring mvc的依赖。 二.Thymeleaf模板引擎 推荐使用的模板,因为提供了完美的spring mvc集成 1.Thymeleaf基础知识 1.1 引入Thy...

java_shm的专栏 264

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring框架与J2EE框架

Spring框架与J2EE框架 J2EE框架 简介: J2EE的全称是Java 2 Platform Enterprise Edition,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准。 J2EE的体系结构: 客户端层:负责与用户直接交互,J2EE支持多种客户端,所以客户端既可以是WEB浏览器,也可以是专用的Java客户端。 服务器端组件层:本层是为了基于WEB的应用服...

子敬的技术博客 8360

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《JavaEE开发的颠覆者: Spring Boot实战》资源及勘误

感谢大家对《JavaEE开发的颠覆者: Spring Boot实战》的支持,您可以在如下地址购买:   京东地址:http://item.jd.com/11894632.html 当当地址:http://product.dangdang.com/23926195.html 亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_6...

汪云飞记录本 809

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...

【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven

Java EE 的概念,什么是 web 开发,框架的概念和优点,Maven 如何使用。

2301_79765510的博客 1994

Spring Boot实战学习笔记(四)

摘要本文为学习Java EE开发的颠覆者 Spring Boot实战的学习笔记,学习了一遍,但是好记性不如烂笔头,所以文章记录下来。图书购买地址为: https://item.jd.com/11894632.html.Spring Boot实战学习笔记1Spring Boot实战学习笔记2Spring Boot实战学习笔记3Spring Boot实战学习笔记4Spring Boot实战学习笔记5S...

殘遛的博客 612
上一篇: 学习笔记:JavaEE开发的颠覆者SpringBoot实战(四)spring MVC基础
下一篇: 学习笔记:JavaEE开发的颠覆者SpringBoot实战(六)spring boot的web开发
夜未眠shm
博客等级 码龄14年 15粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值