SpringBoot项目创建及其核心设计思想

参考了很多相关博客:

springboot怎么学? - 知乎

如何解读springboot 中约定大于配置、JPA是什么、咋用_打豆豆。的博客-CSDN博客

SpringBoot约定大于配置到底是什么意思?_zhupanlinch的博客-CSDN博客

SpringBoot约定大于配置的特性解读 & SpringBoot快速入门_星河_赵梓宇的博客-CSDN博客

SpringBoot-基于spring的约定优于配置_木子松的猫的博客-CSDN博客

目录

Spring是什么? spring有什么缺点呢 ?

什么是SpringBoot 呢 ?

为什么要有SpringBoot 呢 ?

Spring Boot 有什么优点呢 ?

Spring Boot支持哪些内置的Servlet容器呢 ?

SpringBoot 与 Spring 的区别是什么呢 ?

创建SpringBoot项目

Spring项目创建失败解决办法

什么情况算是创建好一个Spring Boot的项目呢 ?

输出 Hello,Spring Boot

简单看一下Spring的项目目录

相关路径的问题

SpringBoot 的核心设计思想

那么SpringBoot中有哪些约定呢?


Spring是什么? spring有什么缺点呢 ?

Spring是一种重量级企业的开发框架,Spring框架是为了简化企业级Java开发的.再具体来说,Spring,Spring就是包含了众多方法的IOC容器.

虽然Spring的组件代码是轻量级的,但是它需要大量的XML进行配置,Spring注解数量越来越多,被大量使用,尤其是相同的多个注解会被大量重复的用到各个类或者方法中,这就会导致繁琐的配置及大量冗余代码

为了减少配置做了以下工作 :

在 Spring2.5引入了基于注解的组件扫描,消除大量针对应用程序自身组件显示XML配置,Spring3.0引入了基于java的配置,一种类型安全的可重构配置方式,可以替代XML

但是当我们使用Spring的时候,开启它的某些特性的时候,比如事务管理和SpringMVC,还是需要XML或者java进行显示配置,启用第三方库也要显式配置,如Thymeleaf和Web视图.配置Servlet和过滤器同样是需要web.xml和Servlet初始化代码进行显式配置,组件减少了配置量,java配置也减少很多,但是Spring还需要很多配置,

再比如还会有一些相关库的依赖,不同库的版本冲突.....

什么是SpringBoot 呢 ?

对于SpringBoot它是Spring的脚手架,用来简化Spring框架本身的繁琐配置,达到快速的集成和开发.最典型的减少配置,开箱即用.

为什么要有SpringBoot 呢 ?

SpringBoot它是Spring的脚手架,用来简化Spring开发的.最典型的减少配置,开箱即用.

Spring Boot 有什么优点呢 ?

快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序 (不需要向Spring,那样还要在Tomcat容器里面使用,Spring boot自身内置了Tomcat容器,不需要进行配置,可以直接运行和部署)
快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬

可以完全抛弃繁琐的 XML使⽤注解和配置的⽅式进⾏开发。
⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况

Spring Boot 提供了很多种插件,可以使用内置工具(Maven,Gradle)进行开发和测试Spring Boot应用程序

Spring Boot支持哪些内置的Servlet容器呢 ?

SpringBoot项目创建及其核心设计思想_第1张图片

可以将 Spring 引导应用程序部署到任何 Servlet3.1 + 兼容的Web容器中

SpringBoot 与 Spring 的区别是什么呢 ?

spring和spring boot就是同一家公司的两种产品,spring是很早起的框架,有很大的社区,庞大的用户

更具体的来说,Spring就是包含了众多方法的IOC容器.而对于Spring Boot来说,Spring Boot就是Spring的一个脚手架,只是对Spring本身的扩展,用来简化Spring框架本身的繁琐配置,使得开发,测试和部署更加的方便

创建SpringBoot项目

SpringBoot项目创建及其核心设计思想_第2张图片

SpringBoot项目创建及其核心设计思想_第3张图片

首先先要下载好Spring boot Helper 这个插件,下载后重新新建一个Spring boot的项目

SpringBoot项目创建及其核心设计思想_第4张图片

SpringBoot项目创建及其核心设计思想_第5张图片

SpringBoot项目创建及其核心设计思想_第6张图片

SpringBoot项目创建及其核心设计思想_第7张图片

SpringBoot项目创建及其核心设计思想_第8张图片

SpringBoot项目创建及其核心设计思想_第9张图片

Spring项目创建失败解决办法

SpringBoot项目创建及其核心设计思想_第10张图片

出现这种错误就是Maven的jar包没有下载完成.导致失败,所以这个时候,我们应该先要配置好国内源

SpringBoot项目创建及其核心设计思想_第11张图片

SpringBoot项目创建及其核心设计思想_第12张图片

SpringBoot项目创建及其核心设计思想_第13张图片

SpringBoot项目创建及其核心设计思想_第14张图片

有可能你会发现一点开这两个设置就会弹出一大堆Maven下载失败,这就是国内源的问题.

首先先要配置好国内源-->也就是settings.xml-->配置好国内的镜像.

  
  
    
     
        ******
        ******
        ******
        ******
    
	
    
     
    alimaven 
    aliyun maven 
    http://maven.aliyun.com/nexus/content/repositories/central/ 
    central 
    

    
     
    junit 
    junit Address/ 
    http://jcenter.bintray.com/ 
    central 
    
	
  

有可能你配置我的这个也可能不好使,那就去网上找找,就好了我发现多配置几个就会好使.

然后重新创建出项目-->同时也要保证网络是良好的... 然后进行下载,初次下载可能会很慢,慢慢来就行.

什么情况算是创建好一个Spring Boot的项目呢 ?

SpringBoot项目创建及其核心设计思想_第15张图片

当然,我们也可以运行一下,看是否能够成功

SpringBoot项目创建及其核心设计思想_第16张图片

输出 Hello,Spring Boot

这可能是我们学习一门新技术的时候,最熟悉的给新技术招手了,发誓一定要学好它哈哈哈....

SpringBoot项目创建及其核心设计思想_第17张图片

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @RequestMapping("/hello")//加上路由
    public String sayHello(){
        return "hello, Spring Boot";
    }
}

SpringBoot项目创建及其核心设计思想_第18张图片

简单看一下Spring的项目目录

SpringBoot项目创建及其核心设计思想_第19张图片

SpringBoot项目创建及其核心设计思想_第20张图片

相关路径的问题

SpringBoot项目创建及其核心设计思想_第21张图片

如果不放在同级目录下就会报错-->否则SpringBoot项目就不会将Bean注入到Spring容器中.

SpringBoot项目创建及其核心设计思想_第22张图片

SpringBoot 的核心设计思想

如何理解Springboot的核心思想 -- > "约定大于配置" 呢 ?

我们可以用Spring与SpringBoot进行对比,以前我们基于Spring框架实现的Web应用都需要做一些与业务无关的并且只需要做一次的配置 比如 web.xml,管理jar包的依赖,将应用部署到Web容器中......

对于SpringBoot我们不需要在进行这些繁琐的配置,这些SpringBoot已经帮我们实现好了.我们只需要实现我们所实现的业务代码即可..这就是约定大于配置的思想..

使用这种约定大于配置的思想,在进行使用SpringBoot开发的时候,使用框架提供的默认值,但是如果提供的默认值与我们的需求不匹配的情况下,我们就可以进行自己进行配置比如 : properties或者yml来重写框架的默认值来满足我们的需求.

用自己的话来理解 : 就是别人已经帮我们把该做的事情做好了,我们只需要做自己的事情就行了,如果别人以前做的事情不符合我们的需求,我们修改一下或者添加一下自己需要的东西就好了呗,变成自己的就行了(哪有什么岁月静好,只不过是有人为你负重前行)

那么SpringBoot中有哪些约定呢?

  • Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在target文件夹下面
  • spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一
  • application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等
  • Spring Boot会自动内置Tomcat容器来运行 Web 应用,我们不需要再去单独做应用部署。
  • Spring Boot 通过扫描约定路径下的 Spring.factories文件来识别配置类,实现 Bean 的自动装配。
  • SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。就约定了你会使用 SpringMVC。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。
  • 当我们导入spring-boot-starter-web后,就会自动帮我们导入springMVC的相关依赖和一个内置的tomcat容器,以及spring-boot-starter-logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。
  • SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。

你可能感兴趣的:(Spring,java,spring,maven)