【黑马程序员】Spring Boot介绍和使用
详解Spring Boot项目开发
![详解Spring Boot项目开发](https://img.taocdn.com/s3/m/e6aef52d2379168884868762caaedd3383c4b5fd.png)
详解Spring Boot项目开发一、创建Spring Boot应用程序Spring Boot应用程序可以使用多种方式创建,包括使用Spring Initializr Web界面或使用命令行工具。
在这里我们将使用Spring Initializr创建应用程序。
在这之前,我们需要确保已安装了Java开发工具包(JDK)和Maven构建工具。
1. 打开浏览器并转到Spring Initializr网站2. 选择Maven Project选项卡,并在Artifact中输入您的应用程序名称3. 选择相应的Spring Boot版本4. 选择所需的项目元数据,如语言和打包类型5. 单击Generate Project按钮,下载生成的项目文件二、配置Spring Boot应用程序Spring Boot应用程序可以通过application.properties或application.yml文件进行配置。
在这里,我们将使用application.properties文件配置应用程序。
1. 在src\/main\/resources目录下创建一个名为application.properties的新文件2. 添加配置属性,如下所示:```server.port = 8080spring.datasource.url=jdbc:mysql:\/\/localhost:3306\/mydb ername=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver```这些配置属性将告诉Spring Boot应用程序如何连接到MySQL数据库。
您还可以添加其他Spring Boot配置属性,例如端口号和日志级别等。
三、使用Spring Boot构建RESTful APIRESTful API是现代Web应用程序的核心。
【黑马程序员】SpringBoot应用Docker化
![【黑马程序员】SpringBoot应用Docker化](https://img.taocdn.com/s3/m/417b800e6edb6f1aff001f60.png)
【黑马程序员】SpringBoot应用Docker化概述当下web服务端开发中最火的名词中绝对有微服务的一席之地,其也成为当下互联网后端服务架构演进历程中最闪亮的技术之一。
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。
在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
既然服务被分割和微小化了,我们很容易想到如果将其和docker结合,让docker承载着一个个的微服务运行,如此一来将会让服务间耦合度降低,部署简洁,同时系统的架构也更加清晰,便于长期演进,基于此想法有了这篇文章的入门实践!创建基于maven的spring bt项目pom.xml中加依赖:[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>18 19 20</dependency> </dependencies>我们只需要在启动类中添加一个简单的restful接口就行了,为了后续浏览器能验证一下,访问/hello接口,能向浏览器返回一个Hello Docker!的问好![AppleScript] 纯文本查看复制代码?123 04 05 06 07 08 09 1 0 1 1 1 2@RestControllerpublic class DockerDemoSpringApplication {public static void main(String[] args) {SpringApplication.run(DockerDemoSpringApplication.c lass, args);}@RequestMapping("/hello")public String hello(){return "Hello! Docker!”;}}编写Dockerfile我们在Spring Bt项目的根目录下建立Dockerfile,用起来完成Docker镜像构建的编排:[AppleScript] 纯文本查看复制代码?0 1 0 2 0 3 0 40 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8FROM maven:3.3.3ADD pom.xml /tmp/build/RUN cd /tmp/build && mvn -q dependency:resolveADD src /tmp/build/src#构建应用RUN cd /tmp/build && mvn -q -DskipTests=true package \#拷贝编译结果到指定目录&& mv target/*.jar /app.jar \#清理编译痕迹&& cd / && rm -rf /tmp/buildVOLUME /tmpEXPOSE 8080ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar ”]进入Docker的世界在Spring项目根目录下根据Dockerfile来生成docker镜像[AppleScript] 纯文本查看复制代码?1`docker build -tspringindocker .`[align=left][color=#004000][backcolor=transparent][ font=微软雅黑][size=14px]从刚创建的镜像来启动容器打开浏览器,或者使用curl 访问http://127.0.0.1:8080就可以看到web服务器里返回的Hello Docker!!!问好的字符了至此就说明你成功将一个基于Spring Boot 的应用Docker 化了。
黑马程序员spring知识总结技术帖
![黑马程序员spring知识总结技术帖](https://img.taocdn.com/s3/m/bcc03e83700abb68a882fb47.png)
S p r i n g框架一、技术说明(技术介绍,技术优势以及发展史等)1.1、什么是spring●Spring是分层的JavaSE/EE full-stack 轻量级开源框架分层:三层体系结构,为每一个层都提供解决方案web层:struts2、spring-mvcservice层:springdao层:hibernate、mybatis、jdbcTemplate(spring)轻量级:使用时占用资源少,依赖程序少。
比较:EJB1.2、spring由来Expert One-to-One J2EE Design and Development ,介绍EJB,使用,特点Expert One-to-One J2EE Development without EJB ,不使用EJB,spring思想1.3、spring核心●以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程为内核)1.5、spring体系结构●spring 核心功能:beans、core、context、expression二、环境搭建(技术开发环境)2.1、获取Spring framework jar 包1、spring官网下载下载完成后会发现三个目录,命名很明确。
Docs 目录相关文档。
包括一份API 和一份各种spring 的使用说明(reference),reference 提供了HTML.PDF 版本,非常详细。
2.spring包的核心包搭建第一个用到spring 依赖注册的程序直接用eclipse 建立一个JAVA 项目然后添加spring 的jar 包引入注:和hibernate 一起用时这个JAR 会冲突,解决方法删掉它就是了Caused by:除此之外,还有需要一个Apache common 的JAR 包3. 配置XMLSpring 的最大的作用就是提供bean 的管理功能,在spring 中bean 的管理是通过XML 实现的,要用此功能,需要把bean 配置到spring 的xml1. 新建立一个xml.名字任意,如applicationContext.xml,或者text.xml 都可以<xml version="1.0" encoding="utf-8">①②③"><bean> </bean> </beans>②schemaLoacation .用于绑定命名空间的schema 文件,通常是用URL 值对,中间用空格隔开,前面URL 是命名空间,后面URL 为schema 的文件地址③xsd 的存放地址,如果没有声明,eclipse 会去网上下载.在创建xml 时,在eclipse 编辑xml 配置没有提示。
JavaSpringBoot框架详细分析
![JavaSpringBoot框架详细分析](https://img.taocdn.com/s3/m/5805065d0a1c59eef8c75fbfc77da26925c59636.png)
JavaSpringBoot框架详细分析Java Spring Boot框架详细分析Java Spring Boot是一款用于构建Java应用程序的开源框架。
它简化了基于Spring Framework的开发流程,并提供了诸多便利功能。
本文将对Java Spring Boot框架的主要特性和用法进行详细分析。
一、简介Java Spring Boot是Spring Framework的一个子项目,旨在简化Java 应用程序的开发过程。
Spring Boot通过自动化配置和约定大于配置的原则,减少了开发者的工作量和配置麻烦。
同时,它集成了很多常用的第三方库和插件,方便开发者快速构建高效可靠的应用程序。
二、主要特性1. 自动配置Spring Boot根据应用程序的依赖关系和配置文件,自动进行配置,大多数常见的配置项都有合理的默认值。
开发者只需要简单配置少量属性,即可实现快速启动和运行应用程序。
2. 简化的依赖管理Spring Boot通过Starter POMs(项目对象模型)来管理依赖项。
Starter POM包含了常用的依赖项配置,开发者可以根据自身需求引入相应的Starter POM,无需手动管理依赖项。
3. 内嵌服务器Spring Boot内嵌了常见的HTTP服务器,如Tomcat、Jetty等,可以直接将应用程序打包为可执行的JAR文件,并通过命令行或脚本启动,无需额外安装和配置应用服务器。
4. ActuatorSpring Boot的Actuator模块提供了丰富的监控和管理功能,可以实时查看应用程序的性能指标、健康状态和运行时信息,并提供RESTful 接口进行管理操作,如修改配置、重新加载等。
5. 配置灵活Spring Boot支持多种配置方式,包括传统的属性文件、YAML文件、环境变量等。
开发者可以根据不同环境和需求,选择合适的配置方式,并支持动态配置更新。
三、使用步骤1. 创建Spring Boot项目使用Spring Initializr(https://start.spring.io/)或Spring Tool Suite等工具创建一个新的Spring Boot项目。
SpringBoot介绍与使用
![SpringBoot介绍与使用](https://img.taocdn.com/s3/m/1c43d749a9956bec0975f46527d3240c8447a197.png)
SpringBoot介绍与使⽤SpringBoot介绍与使⽤1.什么是SpringBootSpringBoot是Spring项⽬中的⼀个⼦⼯程,与我们所熟知的Spring-framework 同属于spring的产品:我们可以看到下⾯的⼀段介绍:Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.翻译⼀下:⽤⼀些固定的⽅式来构建⽣产级别的spring应⽤。
Spring Boot 推崇约定⼤于配置的⽅式以便于你能够尽可能快速的启动并运⾏程序。
其实⼈们把Spring Boot 称为搭建程序的脚⼿架。
其最主要作⽤就是帮我们快速的构建庞⼤的spring项⽬,并且尽可能的减少⼀切xml配置,做到开箱即⽤,迅速上⼿,让我们关注与业务⽽⾮配置。
2.为什么要学习SpringBootjava⼀直被⼈诟病的⼀点就是臃肿、⿇烦。
当我们还在⾟苦的搭建项⽬时,可能Python程序员已经把功能写好了,究其原因注意是两点:复杂的配置,项⽬各种配置其实是开发时的损耗,因为在思考 Spring 特性配置和解决业务问题之间需要进⾏思维切换,所以写配置挤占了写应⽤程序逻辑的时间。
⼀个是混乱的依赖管理。
项⽬的依赖管理也是件吃⼒不讨好的事情。
决定项⽬⾥要⽤哪些库就已经够让⼈头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘⼿。
并且,依赖管理也是⼀种损耗,添加依赖不是写应⽤程序代码。
⼀旦选错了依赖的版本,随之⽽来的不兼容问题毫⽆疑问会是⽣产⼒杀⼿。
⽽SpringBoot让这⼀切成为过去!Spring Boot 简化了基于Spring的应⽤开发,只需要“run”就能创建⼀个独⽴的、⽣产级别的Spring应⽤。
教你使用SpringBoot进行Java开发
![教你使用SpringBoot进行Java开发](https://img.taocdn.com/s3/m/d3d66d5453d380eb6294dd88d0d233d4b04e3f53.png)
教你使用SpringBoot进行Java开发Spring Boot是一种用于简化Java应用程序开发的框架,它提供了一套开箱即用的功能和约定,使得开发者能够更快速、更高效地构建Java应用程序。
本文将向读者介绍如何使用Spring Boot进行Java开发,并提供一些实用的技巧和建议。
一、Spring Boot简介Spring Boot是一种开源框架,它基于Spring Framework,并以简化配置的方式来构建独立的、生产级别的Java应用程序。
Spring Boot的目标是提供一个约定大于配置的开发模式,让开发者能够快速搭建起一个可运行的、基于Spring的Java应用程序。
二、快速开始1. 环境准备在开始使用Spring Boot之前,你需要确保你的开发环境满足以下要求:- JDK 1.8或以上- Maven或Gradle构建工具2. 创建一个Spring Boot应用使用Spring Initializr来初始化一个Spring Boot应用,你可以访问[https://start.spring.io/](https://start.spring.io/),在页面上选择相应的配置,然后点击"Generate"按钮来生成一个基础的Spring Boot项目结构。
3. 添加依赖在创建好的Spring Boot项目中,你可以通过编辑pom.xml文件来添加各种额外的依赖。
Spring Boot提供了大量的starter依赖,这些依赖可以一键添加到你的项目中,帮助你快速集成各种常用的功能,比如数据库访问、Web开发等。
4. 编写代码现在,你可以开始编写你的Java代码了。
Spring Boot提供了一种基于注解的方式来配置和管理Bean对象,比如使用@Component、@Service、@Controller等注解。
此外,Spring Boot还提供了一些常用的注解,比如@RequestMapping、@GetMapping、@PostMapping等,用于定义Web接口。
SpringBoot介绍
![SpringBoot介绍](https://img.taocdn.com/s3/m/cc31cd0bce84b9d528ea81c758f5f61fb7362838.png)
SpringBoot介绍Spring Boot是一个用于快速开发基于Spring框架的应用程序的开源框架。
它简化了Spring应用程序的配置和部署过程,并提供了一套默认的配置,使得开发者可以快速构建和部署独立的、生产级别的Spring应用程序。
Spring Boot的主要特点之一是其能够自动配置。
在传统的Spring框架中,开发者需要手动配置大量的XML文件来定义应用程序的各种组件。
而Spring Boot通过分析应用程序的类路径和依赖关系,自动配置了应用程序的各个组件。
这使得开发者不再需要关注繁琐的配置细节,能够更专注于业务逻辑的开发。
除了自动配置,Spring Boot还提供了一套约定大于配置的原则。
它定义了一套默认的配置规则,开发者只需按照这些规则来组织项目的结构和命名,就能够得到一些常见的功能。
例如,开发者只需将Web相关的代码放置在特定的目录中,就能够自动配置Servlet容器和处理HTTP请求的功能。
Spring Boot还提供了一套强大的监控和管理功能。
开发者可以通过一个Web界面来查看和管理应用程序的健康状况、性能指标和日志信息。
这使得开发者能够更方便地监控和管理应用程序,及时发现和解决潜在的问题。
除了以上的特点,Spring Boot还集成了大量的第三方库和框架,使得开发者能够更方便地使用各种功能。
例如,Spring Boot提供了对Spring Data、Spring Security和Spring Cloud等项目的集成支持,开发者可以更方便地使用这些功能。
在使用Spring Boot开发应用程序时,开发者只需引入相应的依赖和编写必要的代码,即可快速构建和部署应用程序。
开发者可以选择使用Maven或Gradle等构建工具,通过添加相应的依赖,来引入Spring Boot 所提供的功能。
开发者还可以通过命令行工具或集成开发环境来创建和管理Spring Boot项目。
总结起来,Spring Boot是一个灵活、轻量级、易使用的框架,能够帮助开发者快速构建和部署基于Spring框架的应用程序。
SpringBoot介绍ppt
![SpringBoot介绍ppt](https://img.taocdn.com/s3/m/34e5d6e21eb91a37f0115c33.png)
Web应用,并且内置了 tomcat,构建的fat Jar包通过java -jar 就可以直 接运行。 3、如下特性使得 Spring Boot 非常契合微服务的概念,可以结合 Spring Boot与Spring Cloud 和Docker技术来构建微服务并部署到云端: ·一个可执行 jar即为一个独立服务 ·很容易加载到容器,每个服务可以在自己的容器(例如 docker )中运行 ·通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展
2、该框架使用了特定的方式 (继承starter,约定优先于配置 )来进
行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式, Boot致力于在蓬勃发展的快速应用开发领域( rapid application development )成为领导者。 3、Spring Boot 是基于Spring4进行设计,承了原有 Spring框架的优秀基 因。它并不是一个框架,从根本上将,它就是一些库的集合, maven或者 gradle项目导入相应依赖即可使用 Spring Boot ,而且无需自行管理这些
spring-webmvc · spring-boot-starter-aop 对面向切面编程的支持,包括 spring-aop
和AspectJ · spring-boot-starter-jdbc 对JDBC数据库的支持 · spring-boot-starter-security 对 spring-security 的支持
3、springBoot有哪些特性?
2、独立运行的 Spring项目
Spring Boot 默认将应用打包成一个可执行的 jar包文件,构建成功后使用 java -jar命令即可运行应用。或者在应用项目的主程序中运行 main函数即 可,不需要依赖 tomcat、jetty等外部的应用服务器。 其中内置的se-rvlet Container:
【黑马程序员】Spring Boot启动原理
![【黑马程序员】Spring Boot启动原理](https://img.taocdn.com/s3/m/e6ef73c6f61fb7360b4c655e.png)
【黑马程序员】Spring Boot启动原理引言Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便。
但是对于新手来说,如果不了解个中原理,难免会遇到坑。
本文作者将带领大家走近神秘的Spring Boot,一步步破开它的神秘面纱,探索Spring Boot 的启动原理。
开发任何基于Spring Boot 的项目,我们都会使用以下的启动类:import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}可以看到,Application 类中定义了注解@SpringBootApplication,main 方法里通过SpringApplication.run 来启动整个应用程序。
因此要研究Spring Boot 的启动原理,我们就需要从这两个地方入手。
强大的SpringBootApplication首先,我们先来看看SpringBootApplication 源码是怎么定义这个注解的:/*** Indicates a {@link Configuration configuration} class that declares one or more* {@link Bean @Bean} methods and also triggers {@linkEnableAutoConfiguration* auto-configuration} and {@link ComponentScan component scanning}. This is a convenience* annotation that is equivalent to declaring {@code @Configuration}, * {@code @EnableAutoConfiguration} and {@code @ComponentScan}.** @author Phillip Webb* @author Stephane Nicoll* @since 1.2.0*/@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })public @interface SpringBootApplication {/*** Exclude specific auto-configuration classes such that they will never be applied.* @return the classes to exclude*/@AliasFor(annotation = EnableAutoConfiguration.class, attribute = "exclude")Class<?>[] exclude() default {};/*** Exclude specific auto-configuration class names such that they will never be* applied.* @return the class names to exclude* @since 1.3.0*/@AliasFor(annotation = EnableAutoConfiguration.class, attribute = "excludeName")String[] excludeName() default {};/*** Base packages to scan for annotated components. Use {@link #scanBasePackageClasses}* for a type-safe alternative to String-based package names.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackages")String[] scanBasePackages() default {};/*** Type-safe alternative to {@link #scanBasePackages} for specifying the packages to* scan for annotated components. The package of each class specified will be scanned.* <p>* Consider creating a special no-op marker class or interface in each package that* serves no purpose other than being referenced by this attribute.* @return base packages to scan* @since 1.3.0*/@AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")Class<?>[] scanBasePackageClasses() default {};}可以看到,除了最基础的注解外,还增加了三个@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。
SPRINGBOOT启动命令参数及源码详析
![SPRINGBOOT启动命令参数及源码详析](https://img.taocdn.com/s3/m/e645261002d8ce2f0066f5335a8102d276a2618f.png)
SPRINGBOOT启动命令参数及源码详析前⾔使⽤过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项⽬。
同时,也可以通过在执⾏jar -jar时传递参数来进⾏配置。
本⽂带⼤家系统的了解⼀下Spring Boot命令⾏参数相关的功能及相关源码分析。
命令⾏参数使⽤启动Spring Boot项⽬时,我们可以通过如下⽅式传递参数:java -jar xxx.jar --server.port=8081默认情况下Spring Boot使⽤8080端⼝,通过上述参数将其修改为8081端⼝,⽽且通过命令⾏传递的参数具有更⾼的优先级,会覆盖同名的其他配置参数。
启动Spring Boot项⽬时传递参数,有三种参数形式:选项参数⾮选项参数系统参数选项参数,上⾯的⽰例便是选项参数的使⽤⽅法,通过“–-server.port”来设置应⽤程序的端⼝。
基本格式为“–name=value”(“–”为连续两个减号)。
其配置作⽤等价于在application.properties中配置的server.port=8081。
⾮选项参数的使⽤⽰例如下:java -jar xxx.jar abc def上述⽰例中,“abc”和“def”便是⾮选项参数。
系统参数,该参数会被设置到系统变量中,使⽤⽰例如下:java -jar -Dserver.port=8081 xxx.jar参数值的获取选项参数和⾮选项参数均可以通过ApplicationArguments接⼝获取,具体获取⽅法直接在使⽤参数的类中注⼊该接⼝即可。
@RestControllerpublic class ArgumentsController {@Resourceprivate ApplicationArguments arguments;}通过ApplicationArguments接⼝提供的⽅法即可获得对应的参数。
关于该接⼝后⾯会详细讲解。
SpringBoot详解
![SpringBoot详解](https://img.taocdn.com/s3/m/9d62446724c52cc58bd63186bceb19e8b8f6ec7f.png)
SpringBoot详解Spring Boot介绍:Spring Boot是由Pivotal团队提供的全新,其设计⽬的是⽤来新应⽤的初始搭建以及开发过程。
该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。
通过这种⽅式,Spring Boot致⼒于在蓬勃发展的快速应⽤开发领域(rapid application development)成为领导者什么是springboot ?⽤来简化spring应⽤的初始搭建以及开发过程使⽤特定的⽅式来进⾏配置(properties或yml⽂件)创建独⽴的spring引⽤程序 main⽅法运⾏嵌⼊的Tomcat ⽆需部署war⽂件简化maven配置⾃动配置spring添加对应功能starter⾃动化配置spring boot来简化spring应⽤开发,约定⼤于配置,去繁从简,just run就能创建⼀个独⽴的,产品级别的应⽤Spring Boot有哪些优点?-快速创建独⽴运⾏的spring项⽬与主流框架集成-使⽤嵌⼊式的servlet容器,应⽤⽆需打包成war包-starters⾃动依赖与版本控制-⼤量的⾃动配置,简化开发,也可修改默认值-准⽣产环境的运⾏应⽤监控-与云计算的天然集成SpringBoot所具备的特征:可以创建独⽴的Spring应⽤程序,并且基于其Maven或者Gradle插件,可以创建可执⾏的JARs和WARs;内嵌Tomcat或Jetty等Servlet容器;提供⾃动配置的“starter”项⽬对象模型(POMS)以简化Maven配置;尽可能⾃动配置Spring容器;提供准备好的特性,如指标、健康检查和外部化配置;绝对没有代码⽣成,不需要XML配置;SpringBoot启动类中的注解:@StringBootApplication注解标明此类为启动类@StringBootApplication注解是SpringBoot项⽬的核⼼注解,⽬的是开启⾃动配置在这个配置中包含了以下三种注解:@StringBootConfiguration(此注解意思为:标明此类为配置类)继承了@Configuration注解,⽤来加载配置⽂件@EnableAutoConfiguration(此注解意思为:⾃动配置)@ComponentScan(此注解意思为:扫描包实例化)递归扫描SpringBoot和SpringCloud的不同?SpringBoot是Spring推出⽤于解决传统框架配置⽂件冗余,装配组件繁杂的基于Maven的解决⽅案,旨在快速搭建单个微服务⽽SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等技术维度并相同,并且SpringCloud是依赖于SpringBoot的,⽽SpringBoot并不是依赖与SpringCloud,甚⾄还可以和Dubbo进⾏优秀的整合开发总结:SpringBoot专注于快速⽅便的开发单个个体的微服务SpringCloud是关注全局的微服务协调整理治理框架,整合并管理各个微服务,为各个微服务之间提供,配置管理,服务发现,断路器,路由,事件总线等集成服务SpringBoot不依赖于SpringCloud,SpringCloud依赖于SpringBoot,属于依赖关系SpringBoot专注于快速,⽅便的开发单个的微服务个体,SpringCloud关注全局的服务治理框架Thymeleaf模板: Thymeleaf代替了我们之前web开发的JSP它也可以轻易的与Springmvc等web框架进⾏集成Thymeleaf特点: 能直接在浏览器中打开并正确,显⽰模板页⾯,不需要重启整个web应⽤由于Thymeleaf使⽤了XMLDOM解析器,因此它并不适合⽤于处理⼤规模的XML⽂件共享Session:1、引⼊redis依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>mons</groupId><artifactId>commons-pool2</artifactId></dependency>2、添加注解@EnbaleRedisHttpSession(maxIncativeIntervaLInsecands=46561*50)maxIncativeIntervaLInsecands:设置Session失效时间SpringBootJpa: Java持久化规范、它的出现主要是为了简化,现有的持久化开发⼯作和整合ORM技术 SpringBoot是Spring基于ORM框架,JPA规范的基础上封装的⼀套JPA应⽤框架,可以⼤⼤提⾼开发效率 SpringBootJpa默认预先⽣成了⼀些基本的CURD⽅法:例如增删改查等SpringBoot中应当注意的注解及其作⽤: @PathVariable是spring3.0中的⼀个新功能;能接受请求路径中占位符的值,获取url中的数据@RestControllerAdvice注解和@ControllerAdvice的注解区别:注解有@ControllerAdvice的类,需要在具体⽅法上同时添加@ExceptionHandler和@ResponseBody注解;注解有@RestControllerAdvice的类,只需要在具体⽅法上添加@ExceptionHandler注解;@ExceptionHandler注解⽤来捕获并统⼀处理,减少代码重复率和复杂度@Resource和@Autowired注解都是⽤来实现依赖注⼊的区别:@Autowired注解是按by type⾃动注⼊;@Resource注解默认按byName⾃动注⼊@Resource注解有两个重要属性,分别是name和type@RequestBody和@RequestParam的区别:@RequestBody可以将body⾥⾯所有的json数据传⼊后端,后端进⾏解析;@RequestBody⼀般⽤户处理application/json、application/xml等类型的数据;@RequestBody不适⽤于GET请求,原因:GET请求中没有HttpEntity@RequestParam注解接受的参数是来⾃Http请求或url请求@RequestParam注解可以接受简单类型属性,也可以接收对象类型@RequestParam注解通常⽤来处理Content-Type为application/x-www-form-urlencoded编码的内容(这⾥指form表单数据)@RequestParam注解⽆法读取json格式数据Contnet-Type总结:form表单请求数据类型(application/x-www-form-urlencoded),不可以⽤@RequestBody注解;可以使⽤@RequestParam注解application/json:json字符串⽤@RequestBody注解@Compent注解把普通pojo实体类实例化到Spring容器中@MapperScan注解:递归扫描,⽐如扫描com.zy下的mapper包,例如:MapperScan("com.zy.Mapper")@Entity:标明该类是⼀个实体类@Table:当实体类与映射数据库表名不同时,需要使⽤⽐如:@Table(name="user_home",shema="test")@SpringBootTest:标明这个类是测试类@Runwith:运⾏测试类,相当于运⾏器@EnableCaching注解:是Springframework中注解驱动的缓存管理功能@Controller和@RestController区别: 在对应的⽅法上,视图解析器可以解析return的JSP、HTML页⾯并且跳转到相对应的页⾯使⽤@Controller注解若返回json字符串内容到页⾯,则需要加@RestController注解。
【黑马程序员】spring boot入门
![【黑马程序员】spring boot入门](https://img.taocdn.com/s3/m/553ab36a8e9951e79b892760.png)
【黑马程序员】spring boot入门什么是spring bootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven 整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
使用spring boot有什么好处其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?1)配置web.xml,加载spring和spring mvc2)配置数据库连接、配置spring事务3)配置加载配置文件的读取,开启注解4)配置日志文件...配置完成之后部署tomcat 调试...现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!但是如果使用spring boot呢?很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!使用sping boot到底有多爽,用下面这幅图来表达快速入门说了那么多,手痒痒的很,马上来一发试试!maven构建项目1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:3、点击Generate Project下载项目压缩包4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!项目结构介绍如上图所示,Spring Boot的基础结构共三个文件: l src/main/java 程序开发以及主程序入口l src/main/resources 配置文件l src/test/java 测试程序另外,spingboot建议的目录结果如下:root package结构:com.example.myproject [AppleScript] 纯文本查看复制代码01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 com+- example+- myproject+- Application.java|+- domain| +- Customer.java| +- CustomerRepository.java|+- service| +- CustomerService.java| +- controller| +- CustomerController.java|1、Application.java 建议放到跟目录下面,主要用于做一些框架配置2、domain 目录主要用于实体(Entity )与数据访问层(Repository )3、service 层主要是业务类代码4、controller 负责页面访问控制采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改 最后,启动Application main 方法,至此一个java 项目搭建好了!引入web 模块1、pom.xml 中添加支持web 的模块:[AppleScript] 纯文本查看 复制代码1 2 3 4 <dependency ><groupId >org.springframework.boot </groupId ><artifactId >spring -boot -starter -web </artifactId ></dependency >pom.xml 文件中默认有两个模块:spring-boot-starter :核心模块,包括自动配置支持、日志和YAML ;spring-boot-starter-test :测试模块,包括JUnit 、Hamcrest 、Mockito 。
SpringBoot学习资料.doc
![SpringBoot学习资料.doc](https://img.taocdn.com/s3/m/3de193b776c66137ee0619cf.png)
SpringBoot一、 Spring介绍1.1 、 SpringBoot 简介在您第 1 次接触和学习 Spring 框架的时候,是否因为其繁杂的配置而退却了?在你第n 次使用 Spring 框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot 来让你更易上手,更简单快捷地构建 Spring 应用!Spring Boot 让我们的 Spring 应用变的更轻量化。
比如:你可以仅仅依靠一个Java 类来运行一个 Spring 引用。
你也可以打包你的应用为jar 并通过使用 java -jar 来运行你的 Spring Web 应用。
Spring Boot 的主要优点:为所有 Spring 开发者更快的入门开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化 Web项目没有冗余代码生成和XML配置的要求本章主要目标完成Spring Boot 基础项目的构建,并且实现一个简单的Http 请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。
1.2 、系统要求:Java 7 及以上Spring Framework 4.1.5 本文采用 Java 1.8.0_73及以上、 Spring Boot 1.3.2 调试通过。
二、快速入门2.1 、创建一个Maven 工程名为” springboot-helloworld” 类型为Jar工程项目2.2 、 pom文件引入依赖<parent ><groupId >org.springframework.boot</ groupId ><artifactId>spring-boot-starter-parent</ artifactId<version >1.3.3.RELEASE </ version ></ parent ><dependencies ><! — SpringBoot web组件--><dependency ><groupId >org.springframework.boot</ groupId ><artifactId>spring-boot-starter-web</ artifactId </ dependency ></ dependencies > > >spring-boot-starter-parent 作用在 pom.xml 中引入 spring-boot-start-parent,spring官方的解释叫什么stater poms,它可以提供也就是说依赖管理,引入以后在申明其它dependency 的时候就不需要version了,后面可以看到。
【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统
![【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统](https://img.taocdn.com/s3/m/fae84101c281e53a5802ffd3.png)
【黑马程序员】SpringBoot2.x开发案例之整合Quartz任务管理系统开发环境JDK1.8、Maven、Eclipse技术栈SpringBoot2.0.1、thymeleaf3.0.9、quartz2.3.0、iview、vue、layer、AdminLTE、bootstrap启动说明∙项目使用的数据库为MySql,选择resources/sql中的tables_mysql_innodb.sql文件初始化数据库信息。
∙在resources/application.properties文件中替换为自己的数据源。
∙运行Application main方法启动项目,项目启动会自动创建一个测试任务见:com.itstyle.quartz.config.TaskRunner.java。
∙项目访问地址:http://localhost:8080/task项目截图版本区别(spring-boot 1.x and 2.x)这里只是针对这两个项目异同做比较,当然spring-boot 2.x版本升级还有不少需要注意的地方。
项目名称配置:# spring boot 1.x server.context-path=/quartz# spring boot2.x server.servlet.context-path=/quartzthymeleaf配置:#spring boot 1.x spring.thymeleaf.mode=LEGACYHTML5#spring boot2.x spring.thymeleaf.mode=HTMLHibernate配置:[AppleScript] 纯文本查看复制代码?1# spring boot 2.x JPA 依赖 Hibernate 52 3 4 5 6 7 8# Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.spring.jpa.hibernate.naming.strategy =org.hibernate.cfg.ImprovedNamingStrategy# stripped before adding them to the entity manager)spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect# Hibernate 5spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.mod el.naming.ImplicitNamingStrategyLegacyJpaImplspring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.mod el.naming.PhysicalNamingStrategyStandardImplquartz配置:[AppleScript] 纯文本查看复制代码?120 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4# spring boot 2.x 已集成Quartz,无需自己配置spring.quartz.job-store-type=jdbc.quartz.scheduler.instanceName=clustere dScheduler.quartz.scheduler.instanceId=AUTO .quartz.jobStore.class=org.quartz.impl. jdbcjobstore.JobStoreTX.quartz.jobStore.driverDelegateClass=or g.quartz.impl.jdbcjobstore.StdJDBCDelegate.quartz.jobStore.tablePrefix=QRTZ_ .quartz.jobStore.isClustered=true .quartz.jobStore.clusterCheckinInterval =10000eProperties=false .quartz.threadPool.class=org.quartz.sim pl.SimpleThreadPool.quartz.threadPool.threadCount=10 .quartz.threadPool.threadPriority=5 .quartz.threadPool.threadsInheritContex tClassLoaderOfInitializingThread=true默认首页配置:[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14/*** 配置首页 spring boot 1.x* 创建者小柒2012* 创建时间 2017年9月7日*/@Configurationpublic class MyAdapter extends WebMvcConfigurerAdapter{@Overridepublic void addViewControllers( ViewControllerRegistry registry ) {registry.addViewController( "/" ).setViewName( "for ward:/login.shtml" );registry.setOrder( Ordered.HIGHEST_PRECEDENCE );super.addViewControllers( registry );}}[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14/*** 配置首页(在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter 以被废弃* 建议实现WebMvcConfigurer接口)* 创建者小柒2012* 创建时间 2018年4月10日*/@Configurationpublic class MyAdapter implements WebMvcConfigurer{@Overridepublic void addViewControllers( ViewControllerRegistry registry ) {registry.addViewController( "/" ).setViewName( "for ward:/login.shtml" );registry.setOrder( Ordered.HIGHEST_PRECEDENCE );}}待解决问题:[AppleScript] 纯文本查看复制代码?01/**02 03 04 05 06 07 08 09 10 11 12 13* Set a strategy for handling the query results. This can be used to change* "shape" of the query result.** @param transformer The transformer to apply** @return this (for method chaining)** @deprecated (since 5.2)* @todo develop a new approach to result transformers*/@DeprecatedQuery<R> setResultTransformer(ResultTransformer transformer);hibernate 5.2 废弃了setResultTransformer,说是要开发一种新的获取集合方法,显然目前还没实现,处于TODO状态。
SpringBoot框架详细介绍
![SpringBoot框架详细介绍](https://img.taocdn.com/s3/m/415e143177c66137ee06eff9aef8941ea76e4bbd.png)
SpringBoot框架详细介绍SpringBoot是一种基于Spring框架的开发工具。
它简化了Spring应用程序的开发过程,使得开发者能够更加专注于业务逻辑的实现,而不必过多关注配置和繁琐的操作。
本文将详细介绍SpringBoot框架的特性和使用方法。
一、简介SpringBoot框架是由Pivotal团队于2013年推出的,旨在减少Spring应用程序的配置和开发时间。
它采用了约定优于配置的理念,提供了自动配置、起步依赖和准生产就绪功能,使得开发者能够快速搭建基于Spring的应用程序。
二、特性1. 自动配置:SpringBoot能够根据项目的依赖和配置,自动配置整个应用程序。
开发者只需添加相应的依赖和配置文件,SpringBoot就能自动完成大部分工作。
这样,开发者就可以更专注于核心业务逻辑的开发。
2. 起步依赖:SpringBoot提供了一系列的起步依赖,这些依赖包含了常用的功能模块,例如Web开发、数据库访问、安全认证等。
开发者只需引入相应的起步依赖,就能快速搭建起具备相关功能的应用程序。
3. 准生产就绪:SpringBoot支持自动配置和默认配置,能够快速搭建出符合生产环境要求的应用程序。
它还提供了一系列的监控和管理功能,例如健康检查、度量指标、远程管理等。
这使得开发者能够更方便地对应用程序进行管理和监控。
三、使用方法1. 环境准备:在开始使用SpringBoot之前,需要确保开发环境中已经安装了Java和Maven或Gradle。
可以从Spring官方网站下载SpringBoot的最新版本。
2. 创建项目:使用Spring Initializr或自己手动创建一个Maven或Gradle项目。
在项目的pom.xml或build.gradle文件中引入SpringBoot 的起步依赖。
3. 编写代码:按照常规的Spring应用程序开发方式编写代码。
可以使用@Controller、@Service、@Repository等注解来标识组件,使用@Autowired来注入依赖。
SpringBoot的简介和使用
![SpringBoot的简介和使用](https://img.taocdn.com/s3/m/9b8f0f93970590c69ec3d5bbfd0a79563c1ed480.png)
SpringBoot的简介和使用SpringBoot是什么?SpringBoot是一个快速开发的基础框架,它强调约定优于配置。
它是为了简化Spring框架的使用而开发的,提供了一些默认的配置和自动化配置。
SpringBoot基于Spring框架构建,同时也遵循Spring框架的核心原则,如依赖注入和面向切面编程等。
为什么要使用SpringBoot?SpringBoot简化了Spring框架的配置和部署,可以让开发者更加专注于业务逻辑和业务功能的开发,而不用关注底层框架的繁琐细节。
开发者可以使用SpringBoot提供的自动化配置快速地构建应用程序,同时SpringBoot在应用程序开发方面也提供了各种支持,例如:安全措施、监控、日志记录和性能调整等。
SpringBoot的使用SpringBoot的使用非常简单,只需要遵循以下步骤:1.引入SpringBoot依赖:在maven或gradle项目中添加SpringBoot依赖即可,SpringBoot的起步依赖可以很好地解决项目中的依赖管理问题。
2.创建SpringBoot应用:可以使用Spring的启动类加入注解@SpringBootApplication创建一个SpringBoot应用程序。
3.编写业务逻辑:在SpringBoot应用程序中编写相应的业务逻辑,例如:控制器和服务。
4.打包和部署:使用Maven或Gradle将SpringBoot应用程序打包,我们可以选择将应用程序部署到自己的服务器,也可以将应用程序部署到云端。
总结SpringBoot提供了很多便利功能,可以大大提高应用程序开发效率。
SpringBoot使得开发人员可以在几分钟内搭建出一个运行环境,可以轻松实现控制器、服务、安全性和广泛的应用程序配置。
如果你需要一个快速响应的应用程序框架,SpringBoot可能是你必须要学习的一个技术。
【黑马程序员】spring boot 中的redis使用
![【黑马程序员】spring boot 中的redis使用](https://img.taocdn.com/s3/m/a444fb6f02768e9951e73860.png)
【黑马程序员】spring boot 中的redis使用spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。
redis介绍Redis是目前业界使用最广泛的内存数据存储。
相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。
除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。
可以说Redis 兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。
本文介绍Redis在Spring Boot中两个典型的应用场景。
如何使用1、引入spring-boot-starter-redis[AppleScript] 纯文本查看复制代码?1 2 3 4<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId> </dependency>2、添加配置文件[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=192.168.0.58# Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active=8# 连接池最大阻塞等待时间(使用负值表示没有限制)13 14 15 16 17 18 19spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接spring.redis.pool.max-idle=8 # 连接池中的最小空闲连接spring.redis.pool.min-idle=0 # 连接超时时间(毫秒)spring.redis.timeout=03、添加cache的配置类[AppleScript] 纯文本查看复制代码?0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{@Beanpublic KeyGenerator keyGenerator() {return new KeyGenerator() {@Overridepublic Object generate(Object target, Method method, Object... params) {StringBuilder sb = newStringBuilder();sb.append(target.getClass().getName ());sb.append(method.getName());for (Object obj : params) {sb.append(obj.toString());}return sb.toString();}};}@SuppressWarnings("rawtypes")@Beanpublic CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManager rcm = newRedisCacheManager(redisTemplate);//设置缓存过期时间//rcm.setDefaultExpiration(60);//秒return rcm;1 7 1 8 1 92 0 2 1 2 2 23 24 25 26 27 28 29 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8}@Beanpublic RedisTemplate<String, String>redisTemplate(RedisConnectionFactory factory) {StringRedisTemplate template = new StringRedisTemplate(factory);Jackson2JsonRedisSerializerjackson2JsonRedisSerializer = newJackson2JsonRedisSerializer(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.N ON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setValueSerializer(jackson2JsonRedisSerial izer);template.afterPropertiesSet();return template;}}3944142433、好了,接下来就可以直接使用了[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(Application.class)public class TestRedis {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void test() throws Exception {stringRedisTemplate.opsForValue().set("aaa", "111");Assert.assertEquals("111",stringRedisTemplate.opsForValue().get("aaa"));}@Testpublic void testObj() throws Exception {User user=new User("aa@", "aa", "aa123456", "aa","123");ValueOperations<String, User>operations=redisTemplate.opsForValue();operations.set("com.neox", user);operations.set("com.neo.f",user,1,TimeUnit.SECONDS);Thread.sleep(1000);//redisTemplate.delete("com.neo.f");30 31 32 33boolean exists=redisTemplate.hasKey("com.neo.f");if(exists){System.out.println("exists is true");}else{System.out.println("exists is false");}// Assert.assertEquals("aa",operations.get("com.neo.f").getUserName());}}以上都是手动使用的方式,如何在查找数据库的时候自动使用缓存呢,看下面;4、自动根据方法生成缓存[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7@RequestMapping("/getUser")@Cacheable(value="user-key")public User getUser() {User user=userRepository.findByUserName("aa");System.out.println("若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");return user;}其中value的值就是缓存到redis中的key共享Session-spring-session-data-redis布式系统中,sessiong共享有很多的解决方案,其中托管到缓存中应该是最常用的方案之一,Spring Session官方说明Spring Session provides an API and implementations for managing a user’s session information.如何使用1、引入依赖[AppleScript] 纯文本查看复制代码?1 2 3 4<dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId> </dependency>2、Session配置:[AppleScript] 纯文本查看复制代码?1 2 3 4@Configuration@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30) public class SessionConfig {}maxInactiveIntervalInSeconds: 设置Session失效时间,使用Redis Session 之后,原Boot的server.session.timeout属性不再生效好了,这样就配置好了,我们来测试一下3、测试添加测试方法获取sessionid[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7 8 9@RequestMapping("/uid")String uid(HttpSession session) {UUID uid = (UUID) session.getAttribute("uid");if (uid == null) {uid = UUID.randomUUID();}session.setAttribute("uid", uid);return session.getId();}登录redis 输入keys '*sessions*' [AppleScript] 纯文本查看复制代码?1 2t<spring:session:sessions:db031986-8ecc-48d6-b471-b137a3ed6bc4 t(spring:session:expirations:1472976480000其中1472976480000为失效时间,意思是这个时间后session失效,db031986-8ecc-48d6-b471-b137a3ed6bc4 为sessionId,登录http://localhost:8080/uid 发现会一致,就说明session 已经在redis里面进行有效的管理了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【黑马程序员】Spring Boot介绍和使用
简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot是一种简化原有Spring应用繁杂配置的微框架。
使开发者从繁杂的各种配置文件中解脱出来,通过Spring Boot能够很简单、很快速构建一个优秀的、产品级的Spring基础应用。
运行Spring Boot和运行普通的Java 类一样简单,仅仅run一下Spring Boot的入口main()方法即可开启应用;你也可以把Spring Boot应用打成jar,在命令行执行java -jar xxx.jar命令来运行;或者打成war包部署到服务器下运行服务器来开启应用。
Spring Boot微框架考虑到了Spring平台和第三方库的情况,所以你需要做的则是最少的操作或配置。
Spring Boot的特点:
1. 创建独立的Spring应用程序
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 绝对没有代码生成并且对XML也没有配置要求
Spring boot的使用
1.在ide中打开工程,这里使用的ide是idea,工程的目录结构为:
2、maven配置文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd /maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springboot.sample</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring-boot-sample</name>
<description>Spring Boot Sample Web Application</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MYSQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Spring Boot JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.配置好了pom后,我们一起看下自动生成的Application.java这个类相当于我们程序的main函数入口
@SpringBootApplication
@ServletComponentScan
public class SpringBootApplication extends SpringBootServletInitializer {
private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class);
public static void main(String[] args) {
SpringApplication.run(SpringBootSampleApplication.class, args);
}
}。