Spring Boot入门学习

Spring Boot简介:
Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程。在以前的spring项目中,都会面对大量繁琐的配置,而Spring Boot 则能让我们在不需要过多的配置下,轻松快速地搭建Spring Web应用,没有代码生成,也无需XML配置,快速使用spring框架。

Maven:
Maven是一个项目管理工具,Maven主要做了两件事:统一开发规范与工具,统一管理jar包。Spring Boot项目通常使用Maven来进行管理。
pom.xml,这是Maven的核心配置文件,它用于描述整个Maven项目。
pom.xml文件中的一些配置:

  • project:包含了pom的约束信息
  • modelVersion:maven版本
  • groupId:公司名或是组织名,一般来说groupId是由三个部分组成,每个部分之间以".“分隔,第一部分是项目用途,比如用于商业的就是"com”,用于非营利性组织的就  是"org";第二部分是公司名,比如"tengxun"、“baidu”、“alibaba”;第三部分是你的项目名。
  • artifactId:可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式。
  • version:项目版本:第一个0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号,snapshot快照,alpha内部测试,beta公测,release稳定,GA正式发布
  • packaging:打包方式,jar(默认)、war zip pom
  • name:项目的描述名
  • url:项目地址
  • description:项目描述
  • developers:开发人员列表
  • licenses:许可
  • origanization:组织信息
  • dependencies和dependency:配置项目依赖的jar包,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。在spring-boot中,模块的依赖都是以starter的方式进行,以 spring-boot-starter-*方式命名,*指明了具体的模块。spring-boot生态中提供了丰富的starter供开发者使用。
  • dependencyManagement:依赖管理
  • build:为项目提供相应的支持
  • parent:子模块中对父模块的继承
  • modules:聚合多个maven项目

Spring Boot属性配置和自定义属性配置:
如果需要修改自定义修改默认配置,只需要在application.properties 中添加修改相应的配置,spring boot启动的时候会读取application.properties这份默认配置。
在spring boot中提供了多环境配置,使得我们切换环境变得简便,在application.properties同目录下新建一下三个文件:
application-dev.properties 开发环境的配置文件
application-test.properties 测试环境的配置文件
application-prod.properties 生产环境的配置文件
在application.properties添加:spring.profiles.active=dev后启动应用,会发现引用了dev的这份配置信息。
在spring boot 中还可以新建application.yml代替application.properties,application.yml配置方式比application.properties更加简便。例如:

spring:                                           
  profiles:
    active: dev
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1/class
    username: root
    password: ******
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
server:
  context-path: /class

Spring Boot常用注解:
注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据),用来将任何的信息或者元数据与程序元素(类、方法、成员变量等)进行关联。

@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上。

@Repository:用于标注数据访问组件,即DAO组件。

@Service:用于标注业务层组件。

@RestController:用于标注控制层组件,包含@Controller和@ResponseBody。主要是为了使 http 请求返回数据格式为 json 格式,正常情况下都是使用这个注解

@Controller:标注 Controller 类,处理 http 请求。

@RestController需要@ResponseBody配合@Controller,用来返回Json

@GetMapping组合注解

@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Configuration:指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上。

@ComponentScan 组件扫描,可自动发现和装配一些Bean。

@Bean:相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

@EnableAutoConfiguration:让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。

@AutoWired:把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@ControllerAdvice:包含@Component。可以被扫描到。统一处理异常。

@ExceptionHandler(Exception.class):用在方法上面表示遇到这个异常就执行以下方法。

@PathVariable: 获取 url 中的数据

@RequestParam:获取请求参数值,方法随意可以设置,但是通常需求都是使用 POST 请求处理表单提交。

@Entity:@Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略

@Id:表示该属性为主键。

@Slf4j :lombok提供的特性,在代码中直接使用log对象,不需要事先定义和初始化log对象。

@Aspect :Aspect作用是把当前类标识为一个切面供容器读取

@Before:Before是在所拦截方法执行之前执行一段逻辑

@NotEmpty: 用在集合类上面

@NotBlank: 用在String上面

@NotNull: 用在基本类型上

@valid : 会对实体类中的注解进行验证,并将验证结果返回给BindingRequest对象

AOP统一处理请求日志:
AOP是一种编程范式,与语言无关,是一种程序设计思想
面向对象关注的是将需求功能垂直划分为不同的并且相对独立的,它会封装成良好的类,并且让他们有属于自己的行为。
AOP则是利用横切的技术,将面向对象构建的庞大的类的体系进行水平切割,并且会将那些影响到了的多个类的公共行为封装成可重用的模块,这个模块被称为切面。AOP–>面向切面编程,将通用逻辑从业务逻辑中分离出来。

数据库操作:
JPA(java persistence api)定义了一系列对象持久化的标准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值