Springboot简单介绍
Springboot入门介绍
一、Spring框架概述
1.1 什么是Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但是Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合性等方面从Spring中获益。
1.2 Spring是如何简化Java开发的
为了降低Java开发的复杂性,Spring采用了以下4种关键策略:
1、基于POJO的轻量级和最小侵入性编程;
2、通过依赖注入(DI)和面向接口实现松耦合;
3、基于切面(AOP)和惯例进行声明式编程;
4、通过切面和模版减少样式代码;
二、SpringBoot简介
2.1什么是SpringBoot
Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
2.2、SpringBoot四个主要特性
1、SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;
2、自动配置:SpringBoot的自动配置特性利用了Spring4对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;
3、命令行接口:(Command-line-interface, CLI):SpringBoot的CLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;
4、Actuatir:它为SpringBoot应用的所有特性构建一个小型的应用程序。但首先,我们快速了解每项特性,更好的体验他们如何简化Spring编程模型。
2.3 SpringBoot开发的具体好处
回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要:
1、配置web.xml,加载spring和spring mvc
2、配置数据库连接、配置spring事务
3、配置加载配置文件的读取,开启注解
。。。
配置完成之后部署tomcat 调试
而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成,这简直是太爽了...
华丽的分割线----------------------------------------------------------------------------------------------------
三、使用IDEA快速搭建SpringBoot项目
1、file->new project 在弹出的窗口选择Spring Initializr
2、修改项目信息
3、选择版本及项目需要的依赖
4、最终目录结构
项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:
- EurekaServerApplication: 一个带有 main() 方法的类,用于启动应用程序
- EurekaServerApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
- application.properties:一个空的 properties 文件,可以根据需要添加配置属性
- pom.xml: Maven 构建说明文件
四、项目简单介绍及helloworld编写
4.1、写一个helloWorld接口
@RestController
@RequestMapping("/")
public class HelloWorldController {@RequestMapping("hello")public String index() {return "Hello World";}
}
@RestController 注解: 该注解是 @Controller 和 @ResponseBody 注解的合体版
4.2、单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class ServiceAuthApplicationTests {private MockMvc mvc;@Beforepublic void setUp() {mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();}@Testpublic void contextLoads() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}
}
4.3、pom文件介绍
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>springboot</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging>
<name>spring-cloud-demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.18.BUILD-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></pluginRepository><pluginRepository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></project>
这个标签是在配置 Spring Boot 的父级依赖
有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。
4.4、启动类介绍(*Application)
@SpringBootApplication
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
@SpringBootApplication是springBoot的核心注解注解: 该注解是@Configuration、@EnableAutoConfiguration、@ComponentScan 注解的合体版
4.5. properties介绍
springBoot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录下
将 Tomcat 默认端口设置为 9090 ,并将默认的访问路径从 “/” 修改为 “/test” 时,使用 properties 文件
Springboot简单介绍相关推荐
- docker简单介绍、安装使用、常用命令、docker构建springboot项目、k8s安装
docker简单介绍 docker的意义 把事情简单化 Docker友好的基于CLI的工作流使各种技能水平的开发人员都可以访问构建,共享和运行容器化应用程序. 快速移动 从单个软件包安装即可在几分钟内 ...
- CAS单点登录原理简单介绍
1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...
- SpringBoot 简单实现仿CAS单点登录系统
SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...
- 简单介绍【spring.factories】的使用
前言 starter的使用在springboot项目中可以说是非常常见,可能有些朋友在使用springboot项目的时候只是在网络上找了一篇如何创建一个springboot,如何又和mybatis或m ...
- SpringBoot框架介绍
SpringBoot框架 简单介绍 前言: 我们大家都知道Spring,Boot是启动的意思,所以SpringBoot其实是一个启动Spring项目的一个工具,从根本上讲,SpringBoot就是一些 ...
- Springboot简单练手的记账本
Springboot简单练手的记账本 昨天看雷哥的教程写了个简单的记账本练练手,没有把笔记整理下来放在博客上,今天补上.言归正传,进入正题. 老规矩,我们还是先看看项目的目录结构,以及登陆界面 每个包 ...
- Zookeeper详细介绍+dubbo简单介绍+简单大白话讲解
Zookeeper zookeeper前言 zookeeper简介绍 dubbo中为何使用zookeeper(如果理解dubbo实现原理可以忽略) dubho好处简单介绍下 dubbo如何使用zook ...
- 遗传算法的简单介绍以及模式定理的简单证明
遗传算法 遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...
- 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...
最新文章
- java中关键字volatile的作用(转载)
- vscode从原有分支上新建_GitHub+VSCode 打造稳定、快速、高效、免费图床
- Android中Toast的用法简介
- php 单例模式 序列化,php设计模式(二)单例模式
- k8s operator开发脚手架kubebuilder 3.2.0安装脚本整理
- dos下查看机器端口占用情况
- java sha1加密ascii码_如何使用加密芯片完成SHA1摘要运算
- “405 – 不允许用于访问此页的 HTTP 谓词。”的解决方案
- 数据结构 —— 递归和树
- [转]MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
- 字节码插桩技术---Transform配合ASM进行插桩(三)
- RTX30 系列游戏本与台式机、云服务器显卡 AI 计算力对比
- 斗鱼“亏转盈”,内容付费真的能代替游戏直播?
- 基于微信小程序云开(统计学生信息并导出excel)
- FL Studio 插件使用教程 —— 3x Osc(上)
- python 列表去重拼题a_python list 合并连接字符串的方法 -电脑资料
- Flask后端开发(二) - Flask的练习(入门)
- linux安装mysql压缩包
- 【原创】谈谈redis的热key问题如何解决
- 谷歌3D人体网站 http://bodybrowser.googlelabs.com/