Springboot概述

Springboot讲解
1 原有Spring优缺点分析
优点:
Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。
缺点:
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。
除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
2 SpringBoot的概述
Springboot解决上述Spring缺点:
SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。
Springboot的特点:
• 为基于Spring的开发提供更快的入门体验
• 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
• 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
• SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
Springboot的核心功能:
• 起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
spring-boot-starter-xxx就是SpringBoot的起步依赖
• 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
Springboot 配置文件:
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml进行配置。
SpringBoot默认会从Resources目录下加载application.properties或application.yml文件。
其中,application.properties文件是键值对类型的文件,除了properties文件外,SpringBoot还可以使用yml文件进行配置,下面对配置文件进行讲解。
application.properties文件实例:
server.name = 8080
application.yml文件实例:
server:
port: 8080
上述application.properties不做过多讲解,主要讲解一下yml配置文件:
YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YML文件的扩展名可以使用.yml或者.yaml。
bootstrap.yml和application.yml 的区别:

其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序。且一个项目上要么yml或者properties,二选一的存在。
Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。它通常用于“使用Spring Cloud Config Server时,应在bootstrap.yml中指定spring.application.name和spring.cloud.config.server.git.uri”以及一些加密/解密信息。技术上,bootstrap.yml由父Spring ApplicationContext加载。父ApplicationContext被加载到使用application.yml的之前。
例如,当使用Spring Cloud时,通常从服务器加载“real”配置数据。为了获取URL(和其他连接配置,如密码等),您需要一个较早的或“bootstrap”配置。因此,您将配置服务器属性放在bootstrap.yml中,该属性用于加载实际配置数据(通常覆盖application.yml [如果存在]中的内容)。
当然,在一些情况上不用那么区分这两个文件,你只需要使用application文件即可,把全部选项都写在这里,效果基本是一致的,在不考虑上面的加载顺序覆盖的问题上。

Springboot常用注解:
1、@SpringBootApplication:启动类注解。
在具有main方法的类上添加此注解,表示此处为SpringBoot程序的入口,即程序的启动类。这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。
2、@SpringBootConfiguration(推荐)或@Configuration:配置类注解。
一般配置信息会在项目的.yml或.properties文件中,但也可以创建配置类,在类上添加此注解,表明此类是配置类,可以在里面做些配置信息。
3、@EnableAutoConfiguration:表示自动配置。
4、@ComponentScan:表示 Spring Boot 扫描 Bean 的规则,比如扫描哪些包。
5、@EnableCaching:完成简单的缓存功能。
6、@EnableScheduling:自带的定时任务注解。
7、@EnableTransactionManagement:开启事务支持,在访问数据库的Service方法上添加注解 @Transactional 便可。
8、@Bean:这个注解是方法级别上的注解,主要添加在 @Configuration 或 @SpringBootConfiguration 注解的类,有时也可以添加 在 @Component 注解的类。它的作用是定义一个Bean。在带有此注解的类中可以注入其他Bean,其他Bean中也可以注入此类。
9、@Value:在代码中引入配置文件内容,比如:
@Value("${server.port}")
10、@Autowired:注入需要的Bean
11、@Controller:用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。
12、@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。
13、@ResponseBody:注解在方法上,返回json类型数据
14、@Service:一般用于修饰service层的组件
15.@AssertFalse 校验false
16、@AssertTrue 校验true
17、@DecimalMax(value=,inclusive=) 小于等于value,inclusive=true,是小于等于
18、@DecimalMin(value=,inclusive=) 与上类似
19、@Max(value=) 小于等于value
20、@Min(value=) 大于等于value
21、@NotNull 检查Null
22、@Past 检查日期
23、@Pattern(regex=,flag=) 正则
24、@Size(min=, max=) 字符串,集合,map限制大小
25、@Validate 对po实体类进行校验
26、@Mapper :Mybatis注解,主要是把mapper这个DAO交给Spring管理
27、@RequestMapping:映射注解 可以指定请求方式
也可以通过映射注解指定访问方式:
@GetMapping:get请求
@PosttMapping: post请求
@PutMapping:put请求
@DeleteMapping:delete请求

小测试:
表:role_table
表字段 类型 描述
id int 表ID 自增
role_name varchar 角色名称
num int 数量

表:user_table
表字段 类型 描述
id int 表id
name varchar 名称
age int 年龄
sex varchar 性别
phone varchar 手机号
表:user_role_table
表字段 类型 描述
id int 表id
user_id int 用户id
role_id int 权限id
根据用户ID查询出对应用户详情以及全部角色,并把角色数量取总,返回到前端。
注意:查询用户详情以及全部角色使用一条sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值