Springboot-初识
Springboot的基本概念、演变的历史
基本概念
- Spring是一个开源框架,2003年兴起的一个轻量Java开发框架。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
- Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。
演变的历史
- 人们根据实际生产应用情况,选取其中实用功能和设计精华,重构出一些轻量级 的框架;之后为了提高开发效率,嫌弃原先的各类配置过于麻烦,于是开始提倡“约定 大于配置”,进而衍生出一些一站式的解决方案。
- 是的这就是Java企业级应用->J2EE->spring->springboot的过程。
idea中的Spring
Spting项目的基本配置
- Spring Boot通常有一个名为*Application的入口类,且入口类有一个main方法,这个main方法就是标志的java应用入口方法。调用main方法就可以启动springboot应用。
- 在springBoot项目常用的配置项,很全面,在application.properties中修改即 可,配置项后用等号直接连接配置的值即可
Spring boot的基本结构
- SpringbootApplication:与springboot包同级,主程序类。这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;
- 配置文件:pom.xml、application.yml
- config包:配置信息类(config)
- JdbcConfig
- mapper包:数据接口访问层(Dao)
- IUserMapper接口
- service包:
- IUserService接口、数据服务层(Service)、UserServiceImpl实现类(数据服务的实现接口(serviceImpl)、service.impl目录下实现IUserService接口)
- controller包:前端控制器(Controller)
- UserController、resources.mapper(mybatis映射文件)、UserMapper.xml、resources.templates(存放Web页面的模板文件)、index.ftl(主页)、insertOrupdateUser.ftl(增加或修改页面)
- UserController、resources.mapper(mybatis映射文件)、UserMapper.xml、resources.templates(存放Web页面的模板文件)、index.ftl(主页)、insertOrupdateUser.ftl(增加或修改页面)
Spring boot的常用注解
- 启动注解@SpringBootApplication:
- 是一个复合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan这三个注解
- @SpringBootConfiguration 注解,继承@Configuration注解,主要用于加载配置文件
- @EnableAutoConfiguration 注解,开启自动配置功能
- @ComponentScan 注解,主要用于组件扫描和自动装配
- Controller相关注解:
- @Controller:控制器,处理http请求
- @RestController:复合注解,相当于@ResponseBody+@Controller合在一起的作用,RestController使用的效果是将方法返回的对象直接在浏览器上展示成json格式
- @RequestBody:通过HttpMessageConverter读取Request Body并反序列化为Object(泛指)对象
- @RequestMapping:将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上
- @GetMapping:用于将HTTP get请求映射到特定处理程序的方法注解
- @PostMapping:用于将HTTP post请求映射到特定处理程序的方法注解
- 取请求参数值:
- @PathVariable:获取url中的数据
- @RequestParam:获取请求参数的值
- @RequestHeader:把Request请求header部分的值绑定到方法的参数上
- @CookieValue:把Request header中关于cookie的值绑定到方法的参数上
- 注入bean相关:
- @Repository:DAO层注解
- @Service:是@Component注解的一个特例,作用在类上
- @Scope:作用域注解,作用在类上和方法上,用来配置 spring bean 的作用域,它标识 bean 的作用域
- @Entity:实体类注解
- @Component:把普通pojo实例化到spring容器中
- 导入配置文件:
- @PropertySource:引入properties文件
- @ImportResource:导入xml配置文件
- @Import:导入额外的配置信息
- 事务注解:
- @Transactional:在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式
- 全局异常处理:
- @ControllerAdvice:统一处理异常
- @ExceptionHandler:注解声明异常处理方法
lombok插件
@Data
- 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法,不带参数的构造方法
插件的使用
- Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。
- 消除模板代码;便捷的生成比较复杂的代码
Maven
作用
- 可以打成直接运行的Jar包
- 可以引入依赖包
- 可以指定默认执行类
- 维护和管理第三方jar包。实际应用的项目之间存在依赖关系,A项目如果依赖CD项目,A项目需要的jar包我们可能很清楚,但CD项目可能不清楚,Maven可以帮助解决此问题。在完成配置后,Maven项目中可以自动导入直接或间接依赖的jar包
Spring boot小试
1. 访问 http://localhost/hello , 显示一个网页,内容为hello wolrd 加上当前的时间
- 1、在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到
- 2、在包中新建一个HelloController类
- 3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回;控制台输出了 Tomcat 访问的端口号!
2.访问 http://localhost/about , 显示一个网页,显示你们小组的成员的学号、姓名
作者:方知有
Motto: 热爱可抵岁月漫长
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
所有评论和私信都会在第一时间处理,如有问题或建议,请多多赐教!
支持博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!