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 中配置。

相关推荐
vyuvyucd20 小时前
插件式开发:C++与C#实战指南
java·前端·数据库
开开心心就好20 小时前
系统管理工具,多功能隐私清理文件粉碎工具
java·网络·windows·r语言·电脑·excel·symfony
随丶芯20 小时前
IDEA安装leetcode-editor插件
java·开发语言
范什么特西20 小时前
下载idea旧版本
java·ide·intellij-idea
计算机毕设指导620 小时前
基于微信小程序的钓鱼论坛系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
qq_124987075320 小时前
基于微信小程序的宠物交易平台的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·计算机毕业设计
小毅&Nora20 小时前
【Java线程安全实战】⑧ 阶段同步的艺术:Phaser 与 Condition 的高阶玩法
java·多线程
内存不泄露20 小时前
基于Spring Boot和Vue的企业办公自动化系统设计与实现
java·vue.js·spring boot·intellij-idea
禹曦a20 小时前
Java实战:Spring Boot 构建电商订单管理系统RESTful API
java·开发语言·spring boot·后端·restful
code_lfh20 小时前
Spring Boot测试类的使用参考
java·spring boot·junit