Spring Boot入门学习(1)

Spring Boot入门

一、Spring和Spring Boot

Spring框架优点:

  • Spring的依赖反转功能让我们开发出容易测试的代码
  • 提供了易用、灵活、强大的数据事务管理支持功能
  • Spring是一个的开放的框架,使得其可以和很多框架,如JPA/Hibernate,JPF,RabbitMQ,Thymeleaf等整合,都可以轻易的整合到Web应用开发中。
  • 提供了标准化的Web应用开发支持Spring MVC

二、Spring Boot启动器

2.1 Spring Boot的使用:

Spring boot通过提供一系列名称以spring-boot-starter开头的启动器来简化项目的依赖。
比如,在项1目中添加了spring-boot-starter-web时,Spring Boot就自动将相关依赖,如spring-mvc、jackson-json、tomcat等引入。

2.2 常用的启动器:

  • spring-boot-starter-web,Web应用开发

  • spring-boot-starter-logging,日志处理

  • spring-boot-starter-jpa,数据储存管理

  • spring-boot-starter-security,安全管理

  • spirng-boot-starter-actuator,应用监控

  • spirng-boot-starter-data-redis,Redis数据库集成

  • spirng-boot-starter-amqp,消息中间件集成

    全部Spring Boot启动器列表:
    http://t.cn/Rn30Zr7

三、Spring Boot应用实例

3.1搭建Spring Boot框架

  1. 使用Spring Boot快速搭建一个最基础的应用框架,可以通过Spring Boot初始化工具(https://start.spring.io/) 完成项目

    [外链图片转存失败(img-Jp8njxc6-1564735735947)(https://i.loli.net/2019/07/31/5d414f0bb614029269.jpeg)]

  2. 编写pom.xml文件

    <?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>
    	<!--使用spring boot的父类使用版本为2.1-->
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.1.6.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<!--本项目的groupid,artifactID,版本等信息-->
    	<groupId>com.chirshee</groupId>
    	<artifactId>springbootdemo</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>springbootdemo</name>
    	<description>Demo project for Spring Boot</description>
    	<properties>
            <!--项目使用的第三方的包的版本,统一在同一个地方声明(建议)-->
        	  <!--JDK版本为1.8-->
    				<java.version>1.8</java.version>
            <maven.compiler.source>${java.version}</maven.compiler.source>
            <maven.compiler.target>${java.version}</maven.compiler.target>
    				<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <guava.version>20.0</guava.version>
            <swagger.version>2.6.1</swagger.version>
    	</properties>
    	<!--springboot 启动器-->
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-data-jpa</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<!--test-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    		<!--Guava可以提供一些缓存、集合等等一些方法的工具类-->
    		<dependency>
    			<groupId>com.google.guava</groupId>
    			<artifactId>guava</artifactId>
    			<version>18.0</version>
    		</dependency>
    	</dependencies>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    			<!--该插件限定maven打包时所使用的版本,避免出现的版本不匹配的问题-->
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<version>3.5.1</version>
    				<configuration>
    					<source>1.8</source>
    					<target>1.8</target>
    				</configuration>
    			</plugin>
    			<!--该插件可以让Maven将工程直接打包成一个可以直接运行的jar-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>12
                </plugin>
    		</plugins>
    	</build>
    </project>
    
  3. 编写应用引导类

    • Spring Boot框架启动并初始化应用。引导类需要一个main主函数,并需要使用@SpingBootApplication注解标识
    • Application类的main方法的调用了SpringApplication.run()方法,该方法会在项目启动的时候构建一个Spring容器,并返回一个ApplicationContext对象。
    package com.chirshee.springbootdemo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringbootdemoApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(SpringbootdemoApplication.class, args);
    	}
    }
    
    • @SpringBootApplication注解,告诉Spring容器,使用该类作为所有Bean源,通过该起点构建应用的上下文。@SpringBootApplication继承自@EnableAutoConfigration和@ComponentScan,通过该注解使得在项目启动的时候Spring就会对该类所属目录下所有子包进行扫描并根据SpringBoot的自动配置机制进行配置。
    • 引导类一般需要放在根包中,否则可能会造成部分配置/Bean不能被扫描到,一般建议项目刚开始的时候将引导类放到根包下,如果没有放到根包下的话,可以使用@ComponentScan注解来配置需要扫描的包的位置
    • 有多个包需要扫描的时候,在注解中可以使用逗号(,)隔开。
    //使用注解来设置自动扫描的起始位置是com.chrishee
    @ComponentScan(com.chrishee.**)
    @SpringBootApplication
    public class SpringbootdemoApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(SpringbootdemoApplication.class, args);
    	}
    }
    
  4. 编写配置文件

    Spring boot应用中,通常会有一个properties或者yml两种格式的配置文件,默认名字都是application,存放在resources目录中。

    配置文件用来存放应用所需的各项配置,如数据源,日志,启动端口等

    # 应用启动后监听的端口
    server.port=8080
    # 配置日志输出级,将Spring框架设置为INFO级别,我们所编写的代码为debug级别
    logging.level.org.springframework=INFO
    logging.level.org.springbootdemo=DEBUG
    

3.2 框架设计

  1. 经典三层应用架构
    • 客户端层UI层:与用户进行交互
    • 应用层:是系统核心价值部分,与UI层进行交互及数据储存的处理
    • 存储层:也称为持久层,通常是数据库,用来保存业务数据

上述为整个应用架构上的划分。

  1. 后端开发在架构上分为以下三层
  • 业务逻辑层:主要承担两大职责

    定义业务领域对象——业务实体(Domain);

    业务逻辑的具体实现——Service

  • 接口层(API层):该层用来对接UI层,为UI层提供数据集业务处理接口,一般称为Controller,所以经常会使用REST方式提供API接口,供各个应用端使用,因此也可以称之为API层

  • 数据接口层(DAO): 负责实体对象的数据处理,如增、删、查、改等,通常定义为repository.

应用框架.jpeg
ps:Spring Cloud微服务架构开发实战读书笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值