当前位置: 首页 > 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");}
}

http://www.lryc.cn/news/277761.html

相关文章:

  • 爬虫你需要知道的:什么是http请求
  • MCU FT61F14x入门
  • 星火大模型——多模态API调用(图像+文本)
  • 计算机基础面试题 |22.精选计算机基础面试题
  • kafka连接失败时springboot项目启动停机问题
  • 【算法题】46. 全排列
  • 可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上
  • 现代密码学 补充1:两种窃听不可区分实验的区别
  • 多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统
  • MySQL语法及IDEA使用MySQL大全
  • 分布式系统网关和sentinel
  • 无法访问Bing网站 - 解决方案
  • Spring Boot 自动装配原理
  • golang如何生成csv文件
  • 你真的掌握了“C语言分支循环”吗
  • Apollo计算几何算法(一)
  • 计算机网络、浏览器相关高频面试题
  • 遥感单通道图像保存为彩色图像
  • 如何将字符串转换为整数
  • 如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本
  • FlinkAPI开发之数据合流
  • 11 个 Python全栈开发工具集
  • 【GDAL】Windows下VS+GDAL开发环境搭建
  • 基于sumo实现交通灯控制算法的模板
  • 设计模式之单例模式的懒饿汉
  • 多平台多账号一站式短视频管理矩阵营销系统下载
  • go work
  • 基于JavaWeb+BS架构+SpringBoot+Vue智能菜谱推荐系统的设计和实现
  • SpringSecurity集成JWT实现后端认证授权保姆级教程-授权配置篇
  • 关系型非关系型数据库区别,以MongoDB为例在express中连接MongoDB示例