栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot笔记02 Web组件,整合Mybatis,事务管理,REST风格

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot笔记02 Web组件,整合Mybatis,事务管理,REST风格

Web组件 拦截器

拦截器是SpringMVC中的一种对象,能够拦截对Controller的请求。

拦截器框架中有系统的拦截器,还可以自定义拦截器,实现对请求预先处理。

实现自定义拦截器

SpringMVC的方式

创建类实现SpringMVC框架的HandlerInterceptor接口

需要在SpringMVC的配置文件中,声明拦截器


    
        
        
     

SpringBoot的方式

创建类实现HandlerInterceptor接口

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("执行LoginInterceptor的preHandle方法");
        return true;
    }
}

创建类实现WebMvcConfigurer接口

@Configuration
public class MyAppConfig implements WebMvcConfigurer {
    //将拦截器对象注入到容器中
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //创建拦截器类
        HandlerInterceptor interceptor = new LoginInterceptor();
        //指定拦截的请求uri地址
        String path[] = {"/user*.*
                    
                
            
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.6
                
                    
                    GeneratorMapper.xml
                    true
                    true
                
            

编写GeneratorMapper.xml (放置在项目的根目录下)






    
    

    
    
        
        
            
        
        
        
        
        
        
            
            
        
        
        
            
        
        
        
            
        
        
        
        
        

生成

事务管理 Spring框架中的事务

1、管理事务的对象:事务管理器(接口,接口有很多的实现类)

例如:使用jdbc或mybatis访问数据库,使用的事务管理器:DataSourceTransactionManager

2、声明式事务:在xml配置文件或使用注解说明事务控制的内容

控制事务:隔离级别,传播行为,超时时间...

3、事务处理方式:

        (1)spring框架中的@Transactional

        (2)aspectj框架可以在xml配置文件中,声明事务控制的内容

SpringBoot中使用事务

上面的两种方式都可以用

1、在业务方法的上面加入@Transactional,加入注解后,方法有事务功能了

 

2、明确的在主启动类上面,加入@EnableTransactionManagement       启用事务管理器

 

配置文件

server.port=8080
server.servlet.context-path=/orm
#连接数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///mybatis
spring.datasource.username=root
spring.datasource.password=root
#指定mapper文件的位置
mybatis.mapper-locations=classpath:mapper/*.xml
#指定mybatis日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

编写controller代码

测试

数据库中没有相关记录,回滚

接口架构风格-RESTful

应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。


架构风格:api的组织方式

传统风格:localhost:8080/orm/adduser?name=GGG&age=1

RESTful风格:localhost:8080/orm/user/GGG/1

使用“/”分割对资源的信息的描述

优点:更简洁,更有层次

资源(图片,视频,文本,网页等)使用url表示

使用http中的动作,表示对资源的操作(CURD)(相同url,不同动作对应不同的controller方法)

GET:查询资源;POST:创建资源;PUT:更新资源;DELETE:删除资源

注解支持 @PathVariable

获取url中的数据

当路径变量名和形参名一样,@PathVariable中的value可以省略

@GetMapping

表示method=RequestMethod.GET的@RequestMapping...

其他几个http动作同上。

@RestController

复合注解:使用在类的上面,表示当前类中的所有方法都加了@ResponseBody

PUT和DELETE请求

在页面或者ajax中支持这两种请求,在SpringMVC中通过配置HiddenHttpMethodFilter来实现

在SpringBooot中在配置文件中配置即可

#开启使用HiddenHttpMethodFilter
spring.mvc.hiddenmethod.filter.enabled=true

在页面中

方法设置为post,并在表单中设置隐藏域表明真正的方法

Controller

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号