springboot简介:
Spring Boot 是 Spring 家族中的一个全新的框架,它能简化我们之前采用 SpringMVC + Spring +MyBatis 框架进行开发的过程。
springboot特性:
- 能够快速创建基于 Spring 的应用程序
- 能够直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需
要部署 war 包文件 - 提供约定的 starter POM 来简化 Maven 配置,让 Maven 的配置变得简单
- 自动化配置,根据项目的 Maven 依赖配置, Spring boot 自动配Spring、 Spring mvc等
- 提供了程序的健康检查等功能
- 基本可以完全不使用 XML 配置文件,采用注解配置
springboot四大核心:
- 自动配置
- 起步依赖
- Actuator
- 命令行界面
springboot集成jsp:
- 添加springboot内嵌的tomcat对jsp的解析包依赖
- 在build标签中配置springboot要求jsp文件必须编译到指定的目录下
- 在springboot主配置文件中配置视图解析器
- 编写controller
- 在src/mai下创建一个webapp目录,然后再该目录下新建jsp页面
springboot工程下使用mybatis的逆向工程:
- 拷贝GeneratorMapper.xml逆向工程的配置文件到项目的根目录下
- 根据项目和表的情况,修改配置文件
- 在添加mybatis逆向工程的依赖
- 最后双击项目中maven下Plugins中mybatis-generate命令生成相关mapper和实体类对象
- 注意事项:如果数据库中表中的字段名称为user-name,生成的实体类对象属性名就按驼峰命名法生成userName,如果是userName或者username,生成的实体类对象属性名就是username,不识别大小写
- 注解:
@Mapper:在每一个mapper类上添加
@MapperScan:在springboot启动类上加上,扫描指定包下的所有mapper文件 - mapper映射文件存放位置的方法:
- 将mapper映射文件放到与mapper接口同一目录,并在pom文件中指定资源文件夹进行编译
- 将mapper映射文件放到resource/mapper目录下,并在springboot核心配置中指定mapper映射文件的存放位置
springboot的事务使用:
- 在springoot启动类上添加@EnableTransactionsManagement 开启事务(springboot2.0以后可加可不加)
- 在springbootserviceImpl实现类的方法上(有增删改操作的方法)加上@Transactional注解
springboot中的springmvc:
- @RestConroller:spring4新增的注解,是Controller的增强版,如果一个 Controller 类添加了@RestController,那么该 Controller 类下的所有方法都相当于添加了@ResponseBody 注解
- @RequestMapping:支持get请求和post请求
- @GetMapping:只支持get请求,相当于@RequestMapping(request.method=get),该注解主要用于查询操作,所有从浏览器地址栏输入的请求都是get请求
- @PostMapping:只支持post请求,主要用于新增数据
- @DeleteMapping:只支持delete请求,通常用于删除数据操作
- @PutMapping:只支持put请求,主要用于改数据操作
- 注意:工作中用到的主要还是get和post请求,查询用get,其他所有请求都可以用post
springboot中的RESTful:
- 简介:英文: Representational State Transfer,简称 REST,一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服务器交互时的架构理念和设计原则,基于这种理念和原则设计的接口可以更简洁,更有层次任何的技术都可以实现这种理念,如果一个架构符合 REST 原则,就称它为 RESTFul 架构
比如我们要访问一个 http 接口: http://localhost:8080/boot/order?id=1021&status=1
采用 RESTFul 风格则 http 地址为: http://localhost:8080/boot/order/1021/1 - 使用原则:
1. 增 post 请求、删 delete 请求、改 put 请求、查 get 请求
2. 请求路径不要出现动词,都用名词名称
- 例如:查询订单接口
/boot/order/1021/1(推荐)
/boot/queryOrder/1021/1(不推荐)
3. 分页、排序等操作,不需要使用斜杠传参数
- 例如:订单列表接口
/boot/orders?page=1&sort=desc
一般传的参数不是数据库表的字段,可以不采用斜杠 - 请求路径冲突的解决办法:
- 在RESTful风格中方法的请求方式会按增删改查的请求方式来区分
@PostMapping(value = “/student/{id}”)
@PutMapping(value = “/student/{id}”) - 修改请求路径
@DeleteMapping(value = “/student/detail/{id}/{status}”)
@DeleteMapping(value = “/student/{id}/detail/{city}”)
- @PathVariable:获取请求路径中的参数,实现 RESTFul 最主要的一个注解
public String updateStudent(@PathVariable(“id”) Integer id){}
springboot集成redis:
- 使用步骤:
1.添加依赖
2.在pringboot主配置文件中配置redis
3.创建RedisTemplate<Object,Object> redisTemplate对象调用其中的增删改查方法,泛型默认都用Object
springboot集成dubbo:
- 创建接口普通maven工程,提供者和消费者的springboot框架的web工程
- 在消费者和提供者工程中添加dubbo和zookeeper,接口工程的依赖
- 编辑提供者和消费者的配置信息
- 编辑接口工程中的接口类
- 编辑提供者工程中的接口实现类,在实现类上方添加@Compoent注解将实现类注入容器中,再添加@Service(interfaceClass = StudentService.class,version = “1.0.0”,timeout = 15000)(此注解为alibaba下的)暴露接口,最后在提供者工程的springboot启动入口添加@EnableDubboConfiguration注解,开启dubbo配置
- 编辑消费者工程中的web层,在controller类中的service对象上添加@Reference(interfaceClass = StudentService.class,version = “1.0.0”,check = false)注解(此注解为alibaba下的),引入接口,最后在消费者工程的springboot启动入口添加@EnableDubboConfiguration注解,开启dubbo配置
springboot关闭log和设置log:
- 关闭log只需要再springboot启动入口类设置:
SpringApplication springApplication = new
SpringApplication(Application.class);
//关闭启动 logo 的输出
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args); - 设置新的log只需要利用登录在线生成banner网站,并在resource目录下新建banner.txt文件,将在线生成的banner复制粘贴到新建文本中
springboot使用拦截器:
- 自定义拦截器类并实现HandlerInterceptor接口,并重写接口中的方法实现拦截的业务逻辑
- 创建一个config包,在包下新建一个拦截器类并实现WebMvcConfigurer接口,覆盖接口中的 addInterceptors 方法,在方法中注册接口并定义要拦截和放行的路径,并为该配置类添加@Configuration 注解,标注此类为一个配置类,让 Spring Boot 扫描到,这里的操作就相当于 SpringMVC 的注册拦截器 ,@Configuration 就相当于一个 applicationContext-mvc.xml编写config配置类文件
springboot使用filter过滤器:
- 使用注解的方式:首先创建一个类实现Filter接口并重写doFilter方法,并在类上添加@WebFilter注解和urlpattern属性,最后再springboot入口启动类上添加@ServletComponentScan(basePackages = “com.bjpowernode.springboot.filter”)扫描@WebFilter注解
- 使用配置类的方式:首先创建一个类实现Filter接口并重写doFilter方法,再创建一个配置类重写FilterRegistrationBean方法注册过滤器的bean对象并添加过滤路径
路径不能使用/user/**
只能用/user/*
springboot设置字符编码:
- 使用Filter的注解或配置类的方式
- 使用spirngboot配置文件配置
sringboot打war部署:
- 添加内嵌tomcat的jsp解析依赖,并配置jsp编译目录为META-INF/resources
- 在resource目录下创建webapp并执行为应用资源文件夹
- 在springboot著配置文件中设置jsp的前后缀
- 测试项目,测试程序没问题在开始打war包
- 在springboot入口启动类需继承SpringBootServletInitializer 类并覆
盖 configure 方法 ,在方法中构建新资源return builder.sources(Application.class) - 在pom文件中设置打包方式和打包名称,并添加打包插件
- 利用maven的packing命令开始打包,在编译的类路径找到打包文件放到tomcat的webapp根目录下,再启动tomcat,tomcat的根路径和端口号为本地的配置