Spring Boot入门

Spring Boot入门

1.1 Spring Boot简介

1.1.1 什么是Spring Boot

Spring Boot 是由Pivotal 团队提供的全新框架,其设计目的是用来简化新Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot默认配置了很多框架的使用方式,就像Maven 整合了所有的Jar包,Spring Boot整合了所有的框架。它的核心设计思想是:约定优于配置,Spring Boot所有开发细节都是依据此思想进行实现的。

Spring Boot是一套全新的框架,它来自于Spring 大家族,因此Spring 所有具备的功能它都有并且更容易使用:同时还简化了基于Spring 的应用开发,通过少量的代码就能创建- 个独立的、产品级别的Spring 应用。

1.1.2 Spring Boot的优势

其实简单,快速,方便!如果平时创建一个Spring web项目我们需要怎么做p>

  1. 配置web.xml,加载spring和spring mvc

  2. 配置数据库连接、配置spring事务

  3. 配置加载配置文件的读取,开启注解

  4. 。。。。

  5. 配置完成之后部署tomcat 调试

  6. 。。。。

  7. 独立运行的Spring项目pring Boot可以以jar包的形式来运行,运行一个Spring Boot项目我们只需要通过java
    -jar xx.jar类运行。非常方便。

  8. 内嵌Servlet容器Spring Boot可以内嵌Tomcat,这样我们无需以war包的形式部署项目。

  9. .提供starter简化Maven配置使用Spring或者SpringMVC我们需要添加大量的依赖,而这些依赖很多都是固定的,这里Spring
    Boot 通过starter能够帮助我们简化Maven配置。

  10. 自动配置Spring

  11. 准生产的应用监控

  12. 无代码生成和xml配置

SpringBoot开发项目优势

  • Snmgor使开发变得简单,提供了丰富的解决方案,快速集成各种解决方案提升开发效率。
  • Sringoot使配置变得简单,提供了丰富的Strters集成主流开源产品往往只需要简单的配置即可。 Spring
  • Boo使部署变得简单,其本身内嵌启动容器,仅仅需要一个命令即可启动项目,结合Jenkins、 Docker 自动化运维非常容易实现。
  • Spring Boot使监控变得简单,自带监控组件, 使用Actuator轻松监控服务各项状态。

1.2快速上手

构建项目

1.可以访问 这个 站 构建Spring Boot.

2.就是使用idea构建
1.打开idea选择File —》New —》 Project 就弹出一个框框

一个简单的项目创建就好了

项目结构介绍

  1. src/main/java 程序入口
  2. src/mian/resources 配置文件
  3. src/test/java 测试程序

  • Application.java建议放到根目录下面,是项目的启动类,主要用于做一些框
    架配置comm(config)目录建议放置公共类,如全局的配置文件、工具类等
  • model(entity)目录主要是实体类
  • repository(mapper)主要是数据库访问层代码
  • service主要是业务逻辑层代码
  • web主要是表示层代码

resources目录下:

  • static目录存放web访问的静态资源,如js、Css、图片等
  • templates目录存放页面模板
  • application.properties存放项目的配置信息

test目录存放单元测试的代码

pom.xml用于配置项目依赖包,以及其他配置

pom 介绍

  • groupld,公司域名;
  • artifactId,项目名称;
  • version,项目版本 ;
  • name,项目名称;
  • description,项目描述;

编写代码

1.在com.hz.demo.service 包创建 DemoService 接口:

2…在com.hz.demo.service.impl 包创建 DemoServiceImpl 实现类:

2…在com.hz.demo.wen 包创建 HelloController 控制器:

启动项目

声明启动成功

单元测试

1.3Spring Boot核心

约定优于配置

那什么是约定优于配置呢p>

约定优于配置(Convention Over Configuration) ,也称按约定编程,是一种软件设计范式,指在减少软件开发人员需做决定的数量、获得简单的好处,而不失灵活性。
通俗的来讲,就是指开发人员仅需规定应用中不符约定的部分,我们实体(模型)类定义的是User类,那我们数据库中对应的就会默认命名为user,只有在偏离这一约定时,该命名为user_info,这是我们CIA需写有关这个名字的配置。
我们可以按照整体思路来设想,我们约定Controller(控制层)就是Web请求层可以省略MVC的配置,我们约定在Service结尾的类自动注入事务,就可以省略了Spring的(面向切面)切面事务配置。
在Spring体系讲约定优于配置的思想展现的淋漓尽致,小到配置文件、中间件的默认配置,大到内置容器、首页哪个台中的各种Starter,无不遵循此设计规则,Spring Boot 鼓励个软件组织方创建自己的Starter,创建Starter的核心功能,在启动的时候进行自动装配,属性默认化配置。

Starters启动器

Starters是什么h4>

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。

Spring Boot sarter基于约定优于配置的理念来设计Spring Boot Sarter中有两个核心组件:自代的和提供自动配置模块及其它有用的依赖。也就意味着当我们项目中引入某个Sae即拥有了此软件的默认使用能力,除非我们需要特定的配置,般情况 下我仅需要少量的配置或者不配置即可使用组件对应的功能。

Spring Boot由众多Starter 组成,随着版本的推移Starter 家族成员也与日俱增。在传统项目中通常将一些层、组件拆分为模块来管理,以便相互依赖复用,在Spring Boot项目中我们则可以创建自定义Spring Boot Starter来达成该目的。

Spring Boot拥有强大融合 区开源软件的能力,在没有使用Spring Boot之前,我们需要按照每个开源软件的特性,将对应的组件包集成到我们的开发项目中,因为每个组件的设计理念和开发团队都不一致,因此会有很多不同的调用风格在我们的项目中。

Spring Boot整合了主流的开源软件形成了一系列的 Starter, 让我们有了一致的编程体验来集成各种软件,Spring Boot在集成的时候做了大量的优化,让我们在集成的时候往往只需要很少的配置和代码就可以完成。可以说各种Starter 就是Spring Boot最大的优势之一。

以下为常用的Spring Boot Starter列表。

@Configuration配置

在前面的学习中,我们几次提到了@Configuration注解,其实@Configuration注解并不属于Spring Boot中新增加的,而是在Spring3.0 中首次出现。

@Configuration注解作用往小了说,因为它里面又包括@Component,可以简单的用来配置一个类,例如我们上一小节,在KtjiaoyuInfo.java 类上使用@Configuration注解,就是将Ktjiaoyulnfo配置为了一个Bean,另外,该类上的@PropertySource注解也是Spring中的一个注解。

@Configuration注解作用往大了说可以替代Spring原来的XML配置文件,相当于XML配置文件中的标签:如果说@Configuration注解相当于XML配置文件中的标签,那么标签由谁表示呢是@Bean注解。

@Configuration+@Bean两个注解,可以用来代替和标签。我们将@Configuration注解使用在类上面,相当于XML配置文件中的,然后在该类中定义一些方法,这些方法需要有相应的返回类型,在这些方法上使用@Bean注解,则表示该方法可产生一个Bean对象,对应标 签的功能。

导入XML配置文件

在使用Spring Boot的时候般是极少需 要添加配置文件的aplicaion.properties除外),但是在实际应用中也会存在不得不添加配置文件的情况,例如集成其他框架或者需要配置- -些中间件等,在这种情况下,我们就需要引入我们自定义的xml配置文件了。
使用方式非常简单,定义一个配置类,例如xxxConfig.java,在该类上使用我们刚刚掌握的Configuration将其屈置为一个配置类, 然后再添加@ImportResiurce{“classpath:xxx.xml”}注解即可,xxx.xml表示我们需要导入的Spring XML配置文件。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92418 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月20日
下一篇 2020年7月20日

相关推荐