当前位置: 首页 > news >正文

系列三十六、注解版Spring、SpringMVC配置文件

一、注解版Spring、SpringMVC配置文件

1.1、pom

<dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.5.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><!-- 普通maven项目中使用Sl4j注解 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.10</version></dependency><!-- 工具 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.3</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.11</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.22</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.16.0</version></dependency></dependencies>

1.2、MySpringConfig

/*** @Author : 一叶浮萍归大海* @Date: 2024/1/10 14:28* @Description: Spring的配置文件* 功能:该配置类用于配置除了Controller的其他bean,例如:数据库连接池、事务管理器、业务bean等* 注解说明:*      @Configuration:表示这是一个配置类,通常标识在类上,它的作用类似于xml中的 applicationContext.xml*      @ComponentScan:表示配置包扫描,里边的属性和xml配置中的属性都是一一对应的*          useDefaultFilters = true:表示使用默认的过滤器*          excludeFilters:表示去除@Controller注解标识的类,即:在 Spring 容器中扫描除了 Controller 之外的其他所有bean**/
@ComponentScan(basePackages = {"org.star"},useDefaultFilters = true,excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = Controller.class)}
)
@Configuration
public class MySpringConfig {}

1.3、MySpringMvcConfig

/*** @Author : 一叶浮萍归大海* @Date: 2024/1/10 14:34* @Description: SpringMcv的配置文件* 注解说明:* @Configuration:表示这是一个配置类,通常标识在类上,它的作用类似于xml中的 spring-mvc.xml* @ComponentScan:表示配置包扫描,里边的属性和xml配置中的属性都是一一对应的 useDefaultFilters = false:表示不使用默认的过滤器* includeFilters:表示只扫描@Controller和Configuration注解标识的类,即:在 Spring 容器中只扫描 Controller 和 Configuration 标识的所有bean* 注意:* 如果不需要在 SpringMVC 中添加其他的额外配置,这样就可以了。即 视图解析器、JSON 解析、文件上传……等等,如果都不需要配置的话,这样就可以了*/
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = "org.star",useDefaultFilters = false,includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class),@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)}
)
public class MySpringMvcConfig implements WebMvcConfigurer {@Autowiredprivate MyLoginHandlerInterceptor loginHandlerInterceptor;/*** 配置视图解析器** @return*/@Beanpublic InternalResourceViewResolver viewResolver() {InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPrefix("/WEB-INF/views/");viewResolver.setSuffix(".jsp");return viewResolver;}@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("/login");}/*** 自定义处理器* @param converters*/@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {// 处理Controller层返回的纯字符串中文乱码StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();stringHttpMessageConverter.setDefaultCharset(Charset.forName("UTF-8"));converters.add(stringHttpMessageConverter);// FastJson转换器(有漏洞)
//        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
//        fastJsonHttpMessageConverter.setDefaultCharset(Charset.forName("UTF-8"));
//        converters.add(fastJsonHttpMessageConverter);// Jackson2转换器MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();jackson2HttpMessageConverter.setDefaultCharset(Charset.forName("UTF-8"));converters.add(jackson2HttpMessageConverter);}/*** 拦截器配置* @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginHandlerInterceptor).addPathPatterns("/**").excludePathPatterns("/login","/logout");}
}

相关文章:

系列三十六、注解版Spring、SpringMVC配置文件

一、注解版Spring、SpringMVC配置文件 1.1、pom <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.5.RELEASE</version><…...

爬虫你需要知道的:什么是http请求

1. 什么是http请求 我们将通过发送http请求来获取网页内容。http是HyperText Transfer Protocol的缩写&#xff0c;意思是超文本传输协议&#xff0c;它是一种客户端和服务器之间的请求响应协议。 浏览器就可以看作是一个客户端&#xff0c;当我们在浏览器地址栏输入想访问的…...

MCU FT61F14x入门

目录 前言一、CMIDE的使用二、系统时钟与睡眠2.1 上电复位 (POR)与系统复位2.2 振荡器和系统时钟2.3 SLEEP睡眠模式 (POWER-DOWN)2.4 低电压检测/比较器 (LVD) 三、I/O端口与中断四、串口USART五、定时器六、ADC七、EEPROM 前言 FT61F14x是辉芒微电子的微控制器&#xff0c;是一…...

星火大模型——多模态API调用(图像+文本)

参考文档 图片理解 API 文档 环境配置 pip3 install websocket-client核心代码 import _thread as thread import base64 import datetime import hashlib import hmac import json from urllib.parse import urlparse import ssl from datetime import datetime from time…...

计算机基础面试题 |22.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

kafka连接失败时springboot项目启动停机问题

问题&#xff1a;springboot整合kafka&#xff0c;作为消费端&#xff0c;对端的kafka系统是在生产环境&#xff0c;在本地开发测试时配置了对端的生产环境的kafka地址。因为开发环境和对端生产环境是不通的&#xff0c;所以连接肯定是失败的&#xff0c;kafka的连接失败导致sp…...

【算法题】46. 全排列

题目 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2&#xff1a; 输入&#xff1…...

可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上

OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据&#xff0c;在某些情况下&#xff0c;尽管OpenCV可以显示窗口&#xff0c;但PyQt5可能更适合用于创建复杂的交互式应用程序&#xff0c;而自带GPU的H618就成为了这些图像显示的最佳载体。 这里分享一个代码&#xff0…...

现代密码学 补充1:两种窃听不可区分实验的区别

两种窃听不可区分实验 写在最前面两种窃听不可区分实验1. 完美保密中的窃听不可区分实验2. 窃听不可区分实验&#xff08;对称加密算法&#xff09;主要区别 写在最前面 两种窃听不可区分实验 两种窃听不可区分实验&#xff08;Eavesdropping Indistinguishability Experimen…...

多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统

一套完善,多功能,的号卡分销系统,多接口,包括运营商接口,无限三级代理,最简单易用的PHP~ 目前市面上最优雅的号卡系统!没有之一 软件架构说明 环境要求php7.3以上(建议低于8.0),MySQL5.6以上,Nginx1.16(无要求) 产品特性 自动安装向导 易于安装使用部署 多个第…...

MySQL语法及IDEA使用MySQL大全

在项目中我们时常需要写SQL语句&#xff0c;或简单的使用注解直接开发&#xff0c;或使用XML进行动态SQL之类的相对困难的SQL&#xff0c;并在IDEA中操控我们的SQL&#xff0c;但网上大都图方便或者觉得太简单了&#xff0c;完全没一个涵盖两个方面的讲解。 单表&#xff1a; …...

分布式系统网关和sentinel

1.网关 作用&#xff1a;网关是给分布式系统进行请求路由分配的服务 功能&#xff1a; 请求路由 请求过滤 请求鉴权 流量控制 统一日志 2.搭建网关&#xff08;微服务&#xff09; 2.1依赖、配置文件、启动类 2.2配置路由&#xff08;id&#xff0c;断言&#xff0c;…...

无法访问Bing网站 - 解决方案

问题 Bing官方网址&#xff1a;https://www.bing.com/ 电脑无法访问Bing网站&#xff0c;但手机等移动设备可以访问Bing网站&#xff0c;此时可尝试以下方案。 以下方案适用于各种系统&#xff0c;如Win/Linux系统。 解决方案 方案1 修改Bing网址为&#xff1a;https://www4…...

Spring Boot 自动装配原理

Java面试题目录 Spring Boot自动装配原理 Spring Boot启动类上的SpringBootApplication注解中包含EnableAutoConfiguration注解&#xff0c;表示开启自动装配。在EnableAutoConfiguration注解中使用Import注解引入AutoConfigurationImportSelector组件&#xff0c;此类中通过S…...

golang如何生成csv文件

在Go语言中&#xff0c;可以使用标准库中的"encoding/csv"包来生成CSV文件。下面是一个简单的示例代码&#xff0c;演示如何使用Go生成CSV文件&#xff1a; package mainimport ("encoding/csv""os" )func main() {// 创建一个新的CSV文件file,…...

你真的掌握了“C语言分支循环”吗

目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符&#xff1a;&& , || , &#xff01; 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习&#xff1a;闰年的判…...

Apollo计算几何算法(一)

Planning模块&#xff0c;路径和速度曲线抽象成折线&#xff08;Polyline&#xff09;&#xff0c;障碍物抽象成多边形&#xff08;Polygon&#xff09;。在碰撞检测、投影计算距离、平滑曲线等方面应用广泛。 1 几何算法 1.1 线段 moudles/common/math/line_segment2d.h n…...

计算机网络、浏览器相关高频面试题

为什么使用CDN 会更快&#xff1f; 没有使用CDN的情况下&#xff0c;用户从浏览器输入地址&#xff0c;依次经过浏览器缓存、操作系统缓存&#xff08;如本地host文件&#xff09;、域名解析服务器、根域名解析服务器、顶级域名服务器直到找到对应的ip地址返回给用户&#xff…...

遥感单通道图像保存为彩色图像

系列文章目录 第一章PIL单通道图像处理 文章目录 系列文章目录前言一、代码实现二、问题记录在这里插入图片描述 总结 前言 将单通道图像以彩色图像的形式进行保存主要使用了PIL库 一、代码实现 palette_data [***]&#xff1a;可以进行自定义设置 代码如下&#xff1a; fr…...

如何将字符串转换为整数

将字符串转换为整数是常见的编程需求。以下是几种常见编程语言的示例&#xff1a; Python str_num "123" num int(str_num) print(num) # 输出: 123 JavaScript let str_num "123"; let num parseInt(str_num); console.log(num); // 输…...

ESJsonFormat-Xcode泛型支持:Xcode 7及以上版本的优化特性

ESJsonFormat-Xcode泛型支持&#xff1a;Xcode 7及以上版本的优化特性 【免费下载链接】ESJsonFormat-Xcode 将JSON格式化输出为模型的属性 项目地址: https://gitcode.com/gh_mirrors/es/ESJsonFormat-Xcode 如果你是一位iOS开发者&#xff0c;那么你一定遇到过将JSON数…...

别再只刷固件了!深入Proxmark3硬件层:AT91SAM7S512芯片与Bootrom.bin的救砖原理详解

深入Proxmark3硬件层&#xff1a;AT91SAM7S512芯片与Bootrom.bin的救砖原理详解 当你的Proxmark3设备突然"四灯全亮"&#xff0c;USB连接失效&#xff0c;变成一块"砖头"时&#xff0c;大多数教程只会告诉你"短接测试点&#xff0c;用J-Link烧录bootr…...

dropin-minimal-css项目架构深度解析:目录结构与核心组件

dropin-minimal-css项目架构深度解析&#xff1a;目录结构与核心组件 【免费下载链接】dropin-minimal-css Drop-in switcher for previewing minimal CSS frameworks 项目地址: https://gitcode.com/gh_mirrors/dr/dropin-minimal-css dropin-minimal-css是一个用于预览…...

【算法题攻略】位运算总结(含习题解析)

文章目录一、位运算总结1. 位操作符 和 移位操作符&#xff08;含原码、反码、补码介绍&#xff09;2. 给一个数n&#xff0c;确定它的二进制表示中的第 x 位是 0 还是 13. 给一个数n&#xff0c;将它的二进制表示中的第 x 位修改成 1&#xff08;或 0&#xff09;4. 提取一个数…...

NotebookLM信息冗余顽疾破解指南(92%用户忽略的3层语义去重机制)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM信息去重的核心挑战与认知重构 NotebookLM 作为 Google 推出的基于用户文档构建的 AI 助手&#xff0c;其核心能力依赖于对上传资料的语义理解与上下文关联。然而&#xff0c;当用户批量导入…...

金融涉外业务赋能,守护跨境金融安全

随着跨境金融业务的快速发展&#xff0c;银行、保险等金融机构的涉外业务日益增多&#xff0c;外籍客户开户、跨境转账、保险投保等业务&#xff0c;都需要进行严格的证件核验与身份确认。传统的人工核验模式&#xff0c;不仅效率低下&#xff0c;还难以应对复杂的证件伪造手段…...

4 款主流论文降 AI 软件实测对比!谁能 5 分钟把 AI 率降到 10% 以下

4 款主流论文降 AI 软件实测对比&#xff01;谁能 5 分钟把 AI 率降到 10% 以下 毕业季最焦虑的事——答辩前剩 3 天、AI 率还有 70%、想找一款 5 分钟就能搞定的工具。 市面上很多工具宣称"几分钟出结果"——但实测下来快的快、慢的慢、效果差距更大。这篇文章实测对…...

别只盯着密码爆破:身份认证漏洞的3个“非主流”攻击面与防御思考

身份认证安全的隐秘战场&#xff1a;超越密码爆破的三大高阶攻防实践 在网络安全领域&#xff0c;身份认证机制如同数字世界的门锁系统。当大多数安全从业者将注意力集中在传统的密码爆破防御时&#xff0c;攻击者早已将目光转向那些被忽视的认证薄弱环节。本文将深入剖析三个常…...

自定义下载器开发:如何为Fetch扩展OkHttp和其他下载引擎

自定义下载器开发&#xff1a;如何为Fetch扩展OkHttp和其他下载引擎 【免费下载链接】Fetch The best file downloader library for Android 项目地址: https://gitcode.com/gh_mirrors/fetch/Fetch Fetch作为Android平台上最优秀的文件下载库&#xff0c;其强大的扩展性…...

复古CRT电视改造:用RF调制器连接树莓派与现代电脑

1. 项目概述&#xff1a;当太空时代美学遇见现代计算几年前&#xff0c;我在一个复古科技展上第一次见到JVC Videosphere&#xff0c;那个圆润的球面屏幕和未来感十足的造型瞬间击中了我。它诞生于上世纪70年代&#xff0c;是那个太空竞赛黄金时期工业设计的缩影。但和大多数老…...