SpringBoot(一)

SpringBoot思维导图
SpringBoot(一)思维导图

一、SpringBoot介绍
  1. Spring技术栈
    包括但不限于Spring Boot、Spring Cloud、Spring Web Service、Spring Kafka等技术。官网:https://spring.io/projects 。
  2. Spring缘由
    由于早期的J2EE开发配置较多、开发效率较低、流程部署复杂、集成第三方难度较大,因此出现了spring系列技术。
    同时为了简化配置,出现了SpringBoot技术。随着业务的发展,为了解决分布式应用,出现SpringCloud技术。
  3. SpringBoot优点
    自动配置、简化开发、提高效率;
    无需配置xml,可以使用写好的api直接应用;
    可以快速创建spring项目,容易与第三方主流框架集成;
    准生产环境的运行时应用监控;
    与云计算的天然集成。
  4. SpringBoot缺点
    由于SpringBoot是基于spring框架进行再封装,需要掌握spring,更难理解。
  5. SpringBoot特点
    简化Spring应用开发、约定大于配置、去繁从简。
二、热部署
  1. 缘由
    SpringBoot如果不加热部署,当项目发生任何修改之后,必须重启Application类才能生效,比较麻烦。
    使用热部署之后,当项目任何类发生修改,可以马上通过JVM类加载的方式,加载到最新的虚拟机中,不需要重启了。
  2. 热部署步骤
    修改pom.xml,增加热部署依赖和maven插件。
    <!-- 热部署依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <!-- 当optional为true时,热部署生效 -->
        <optional>true</optional>
    </dependency><plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    
三、简单HelloWorld

浏览器发送 /hello 请求,服务器接收请求,然后响应 HelloWorld 字符串。

  1. 创建maven工程
    Create New Project–>Maven–>第一次创建要绑定jdk环境–>next

  2. 导入spring boot相关依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
  3. 编写主程序类 HelloWorldApplication

    package springboot.awen;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    /**
    * @SpringBootApplication: 主程序类
    * @author awen
    * /
    @SpringBootApplication
    public class HelloWorldApplication {
    	public static void main(String[] args) {
    		// 启动SpringBoot应用
    		SpringApplication.run(HelloWorldApplication.class, args);
    	}
    }
    
  4. 编写Controller

    package springboot.awen.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    @Controller
    public class HelloController {
    	@ResponseBody
    	@RequestMapping("/hello")
    	public String hello(){
    		return "HelloWorld";
    	}
    }
    
  5. 运行主程序并测试
    右击Run As --> Java Application。
    浏览器地址栏请求localhost:8080/hello,不需要加项目名。

四、深入探究spring boot
  1. 主程序类
  • @SpringBootApplication:如果某个类加上这个注解,则说明这个类是spring boot启动类,通过运行这个main方法来启动该项目。
  • @SpringBootConfiguration:SpringBoot的配置类
    • @Configuration:表明这个类是配置类
  • @ EnableAutoConfiguration:开启自动配置功能
    • @AutoConfigurationPackage:自动配置包
      • @ Import(EnableAutoConfigurationImportSelector.class):Spring底层注解,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class将SpringBootApplication主配置类所在包及其所有子包里的所有组件扫描到spring容器。
    • @Import(EnableAutoConfigurationImportSelector.class):给容器中导入组件
      • EnableAutoConfigurationImportSelector:导入哪些组件的选择器。将所有需要导入的组件以全类名的方式返回,这些组件就会添加到容器中,会导入很多自动配置类XXXAutoConfiguration。
  1. pom.xml文件
    父项目
    <parent>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-parent</artifactId>
    	<version>1.5.9.RELEASE</version>
    </parent>
    
    spring-boot-starter-parent里的父项目:
    真正管理spring boot应用的所有依赖版本,我们导入依赖默认不需要写版本。
    <parent>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-dependencies</artifactId>
    	<version>1.5.9.RELEASE</version>
    	<relativePath>../../spring-boot-dependencies</relativePath>
    </parent>
    
    导入依赖
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    	</dependency>
    </dependencies>
    
  • spring-boot-starter:场景启动器。spring boot会将相关功能场景抽取出来,形成一个个starter,只要引用其中某一个场景依赖,则这个相关的所有依赖都可以导进来。
    • activemq:JMS消息服务
    • ​amqp:高级消息队列
    • aop:切面
    • jqa:数据库访问
    • redis:数据库访问缓存​​
    • mail:邮件开发
    • web:web开发​
  • spring-boot-starter-web:导入web模块正常运行所依赖的组件
五、SpringBoot项目目录结构

springboot目录结构
static:存放css、js、images等静态资源;
templates:存放模板页面;(Spring boot默认不支持JSP页面)(默认使用嵌入式的tomcat)
application.properties:存放配置;(可以修改默认配置)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值