1 SpringBoot

SpringBoot简介

SpringBoot是什么?

产生背景:Spring开发变的越来越笨重,大量的XML文件,繁琐的配置,复杂的部署流程,整合第三方框架难度大等,导致开发效率底下。
SpringBoot是一个用来简化Spring应用的初始创建和开发过程的框架,简化配置,实现快速开发。
整合了整个Spring的技术栈,JavaEE开发的一站式解决方案。

SpringBoot有什么特点?

优点:

  • 快速创建独立运行的Spring项目并与主流框架集成;
  • 内置Servlet容器,应用无需打成war包;
  • 使用starter(启动器)管理依赖并进行版本控制;
  • 大量的自动配置,简化开发;
  • 提供准生产环境的运行时监控,如指标、健康检查、外部配置等;
  • 无需配置XML,没有冗余代码生成,开箱即用。

第一个SpringBoot程序

简介

环境:

  • SpringBoot 2.0 (基于Spring 5.0)
  • JDK 1.8及以上
  • Maven 3.2及以上
  • Tomcat 8.5及以上
  • IDEA较新版本

操作步骤

步骤:
1. 创建一个maven的java工程
传统的web应用需要创建web工程,后期要打包war包,然后放到tomcat中,太麻烦。
而SpringBoot应用只需要创建一个Java工程,后期直接打包可执行的jar包,内置tomcat。
2. 导入SpringBoot的相关依赖

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
    </parent>

    <!-- Add typital dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
3. 编写Service、Controller等
@Controller
public class HelloController {
	
	@RequestMapping("/hello")
	@ResponseBody
	public String hello(){
		return "Hello World";
	}
	
}
4. 编写主程序类,用来启动Spring应用
/**
 - 使用 @SpringBootApplication 标注主程序类,
 - 表示这是一个SpringBoot应用
 */
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        /**
         * 启动SpringBoot运用
         *
         * 传入主程序类的Class对象
         */
        SpringApplication.run(MainApplication.class,args);
    }
}

【注】:默认只扫描主程序类所在的包及其子包
5. 部署打包
添加插件,将应用打包成可执行的jar,执行java -jar springboot01-helloworld-1.0-SNAPSHOT.jar

<!--该插件可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

分析Hello World

3.1 POM文件

  • 父工程
SpringBoot的父工程,默认:
<parent>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.1</version>
</parent>
  • 父工程是:spring-boot-starter-parent
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.4.1</version>
</parent>
  • 父工程的父工程是:spring-boot-dependencies,用来管理springBoot应用中的依赖的版本,进行版本控制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
</parent>
  • 通过starter指定依赖
<dependencies>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependencies>

SpringBoot提供了许多starter(启动器),分别对应不同的功能场景,挡在项目中引入这些starter时,相应场景的依赖就会被导入进来

3.2 主程序类

@SpringBootApplication

标注在类上,表示这个是SpringBoot的主配置类,通过运行该类的main方法,来启动SpringBoot运用

@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}
)}
)

@SpringBootConfiguration
标注在类上,表示这个类是SpringBoot的配置类
层级关系:@SpringBootConfiguration–>@Configuration–>@Component
@Configuration标注在类上,表示这个类是Spring的配置类,相当于是一个xml配置文件

@EnableAutoConfiguration

开启自动配置功能,SpringBoot会自动完成许多配置,简化了以前繁琐的配置
SpringBoot在启动时会类路径下/META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类添加到容器中,将这些自动配置类会帮我们完成许多配置工作。

@ComponentScan

标注在类上,指定要扫描的包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目一Spark离线处理本项目来源于企业级电商网站的大数据统计分析平台,该平台以 Spark 框架为核心,对电商网站的日志进行离线和实时分析。 该大数据分析平台对电商网站的各种用户行为(访问行为、购物行为、广告点击行为等)进行分析,根据平台统计出来的数据,辅助公司中的 PM(产品经理)、数据分析师以及管理人员分析现有产品的情况,并根据用户行为分析结果持续改进产品的设计,以及调整公司的战略和业务。最终达到用大数据技术来帮助提升公司的业绩、营业额以及市场占有率的目标。 本项目使用了 Spark 技术生态栈中最常用的三个技术框架,Spark Core、Spark SQL 和 Spark Streaming,进行离线计算和实时计算业务模块的开发。实现了包括用户访问 session 分析、页面单跳转化率统计、热门商品离线统计、广告流量实时统计 4 个业务模块。通过合理的将实际业务模块进行技术整合与改造,该项目几乎完全涵盖了 Spark Core、Spark SQL 和 Spark Streaming 这三个技术框架中大部分的功能点、知识点,学员对于 Spark 技术框架的理解将会在本项目中得到很大的提高。 项目二Spark实时处理项目简介对于实时性要求高的应用,如用户即时详单查询,业务量监控等,需要应用实时处理架构项目场景对于实时要求高的应用、有对数据进行实时展示和查询需求时项目技术分别使用canal和kafka搭建各自针对业务数据库和用户行为数据的实时数据采集系统,使用SparkStreaming搭建高吞吐的数据实时处理模块,选用ES作为最终的实时数据处理结果的存储位置,并从中获取数据进行展示,进一步降低响应时间。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值