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

spring和maven

 maven和spring的关系

他们经常一起使用来构建和管理企业级应用。

Maven

1,Maven是Apache软件基金会组织维护的一款自动化构建工具,专注于Java平台的项目构建和依赖管理。

1.1 项目构建

在进行项目开发时兼顾项目管理的工作(添加依赖包,编译源码,单元测试,项目部署)等操作就称为项目构建(让程序员专注于编写代码)

1.1.1 自动化构建

编译-测试-打包-部署

1.2 依赖管理

在指定的pom.xml文件中通过指定jar包的几个属性,就可以自动下载并管理jar包,无需从不同地方拷贝

 Spring

spring是用于简化企业级应用程序开发的一个开源的应用程序框架和IOC容器。提供的功能有:一依赖注入、面向切面编程、事务管理、测试等Spring框架的核心是IoC容器,负责管理应用程序对象和生命周期。

两者之间的关系:

程序员构建基于spring的应用程序时,通常会使用Maven来管理项目依赖和构建流程。

2.1 spring中如何解决跨域问题:

首先:跨域是因为浏览器的同源策略限制了不同源(协议,域名,端口)之间的资源访问。

2.1.1,@CrossOrgin注解

由spring MVC提供的,可直接用在控制器或方法上

@RestController @RequestMapping("/api")

public class MyController { 

@CrossOrigin(origins = "http://localhost:3000") // 允许特定的前端域名 

@GetMapping("/data") 

public String getData() { return "Hello, CORS!"; }

}

 2.1.2 全局跨域配置(WebMvcConfigurer)

这是相当于在整个应用程序中配置的同一的跨域规则

写一个配置类并且需要实现WebMvcConfigurer接口,重写接口中的addCorsMappings方法

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**") // 指定需要跨域的路径
                .allowedOrigins("http://localhost:3000") // 允许的前端域名
                .allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的HTTP方法
                .allowedHeaders("*") // 允许的请求头
                .allowCredentials(true); // 是否允许携带凭证
    }
}

 2.1.3 使用自定义的过滤器Filter(此种方式灵活,适用复杂过滤环境)

@Component
public class CorsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        httpResponse.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
        httpResponse.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
        httpResponse.setHeader("Access-Control-Allow-Credentials", "true");

        chain.doFilter(request, response);
    }
}

2.1.4  Spring Boot 配置文件中设置跨域 

spring.mvc.cors.allowed-origins=http://localhost:3000
spring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE
spring.mvc.cors.allowed-headers=*
spring.mvc.cors.allow-credentials=true

 2.1.5 Spring Security 中的跨域配置

简单场景:使用 @CrossOrigin 注解即可。
全局场景:通过 WebMvcConfigurer 实现全局配置。
复杂场景:使用过滤器或Spring Security中的跨域配置。
快速开发:直接在 application.properties 或 application.yml 中配置。

相关文章:

  • 内网渗透基础
  • 稳健投资新标杆,云济会布局国库券回购助推金融市场优化
  • 优化 Docker 镜像 技巧
  • 【PCIe 总线及设备入门学习专栏 5.3 -- PCIe 与 EP 中的 DMA协同工作介绍】
  • 【redis】哨兵:人工恢复主节点故障和哨兵自动恢复主节点故障
  • Flask的app.run()里发生了什么
  • 20250324-使用 `nltk` 的 `sent_tokenize`, `word_tokenize、WordNetLemmatizer` 方法时报错
  • 前端 Babel 入门简介
  • 系统思考与心智模式
  • 计算机网络--第四章 网络层(1)
  • 基于SpringBoot的“社区居民诊疗健康管理系统”的设计与实现(源码+数据库+文档+PPT)
  • 聊聊langchain4j的Code Execution Engine
  • 基于Java的科研成果统计系统的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!
  • CANopen基本理论
  • 2025年- G27-Lc101-542. 01 黑客帝国--java版
  • 2024年认证杯SPSSPRO杯数学建模B题(第二阶段)神经外科手术的定位与导航全过程文档及程序
  • 欧拉角与法向量之间的相互转换(附代码)
  • Cursor+Claude-3.5生成Android app
  • HuggingFace Transformers
  • 【算法笔记】图论基础(二):最短路、判环、二分图
  • 陈颖已任上海黄浦区委常委、统战部部长
  • 五大国货美妆去年业绩分化:珀莱雅百亿营收领跑,上海家化转亏
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 吴志朴当选福建德化县人民政府县长
  • 上汽集团一季度净利润30.2亿元,同比增长11.4%
  • 新疆维吾尔自治区原质量技术监督局局长刘新胜接受审查调查