根据Spring Boot文档,我添加了bean
@Bean
WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:3000");
}
};
}
从localhost:3000启用全局访问,这是我的前端应用程序。我也使用Spring安全性,所以如果用户输入localhost:8080 /something,他会被重定向到登录页面(如果没有登录)。问题是此全局 cors 配置不起作用。
我有一个简单的控制器,它返回
List<String>
另一方面,我有angular服务,它负责向服务器发出get请求。看起来是这样的:
this.http.get("http://localhost:8080/words", {
headers: new Headers({
'Authorization': 'Basic ' + btoa('login:password')
})
}).map((res:Response) => res.json())
.subscribe(
data => { this.words = data},
err => console.error('Error : ' + err),
() => console.log('done')
);
结果我在谷歌chrome控制台上看到:
XMLHttpRequest cannot load http://localhost:8080/words. Response for preflight is invalid (redirect)
我该如何解决这个问题?
这是因为您的前端应用程序在实际数据传输发生之前生成了选项HTTP。尝试将此配置添加到spring项目:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Value("${angular}")
private String angularOrigin;
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry
.addMapping("/**")
.allowedOrigins(angularOrigin)
.allowedHeaders("Authorization", "Cache-Control", "Content-Type", "Accept", "X-Requested-With", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin")
.exposedHeaders("Access-Control-Expose-Headers", "Authorization", "Cache-Control", "Content-Type", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin")
.allowedMethods("PUT","GET","POST","DELETE","OPTIONS");
}
};
}
}
我的应用程序中有一个过滤器。 我有一个使用类的 Restcall。 我在我的过滤器中获得了id,我想在我的过滤器中设置测试类的id。这可能吗?
问题内容: 我到处都读到有关Spring如何鼓励您在代码中使用接口的信息。我没看到 您的spring xml配置中没有接口的概念。Spring的哪一部分实际上鼓励您使用接口(而不是文档)? 问题答案: 为类定义接口时,它有助于进行依赖项注入。您的Spring配置文件本身不包含任何有关接口的信息-您只需输入类的名称即可。 但是,如果您要注入另一个提供“等效”功能的类,则使用接口确实会有所帮助。 例如
问题内容: 我处理遗留代码库,其中未在春天有线了一类需要获得一类 是 在春季接线。我希望创建一个在启动时已连接的工厂类,然后可以调用getInstance()方法来获取一个连接对象。最好的方法是什么? 例: 我需要在启动时连接FooFactory,以便LegacyA可以简单地调用getInstance(),以便它返回Foo的实例(这也是在应用程序上下文中定义的bean)。 编辑:我不得不重新整理我
问题内容: 我有一个Web应用程序,这里有一个典型的问题,即针对不同环境需要不同的配置文件。某些配置作为JNDI数据源放置在应用程序服务器中,但是某些配置保留在属性文件中。 因此,我想使用Spring配置文件功能。 我的问题是我没有运行测试用例。 context.xml: 测试: 问题似乎是无法解析用于加载配置文件的变量: 当前配置文件应使用注释设置。由于这是一个测试用例,因此我将无法使用。如果可
问题内容: 我有一个接口IMenuItem 然后我有一个接口实现 有什么方法可以仅使用IMenuItem接口从配置类创建MenuItem的多个实例?与@autowired之类的?还可以通过指定构造函数的参数来自动装配吗? 问题答案: 实际上对于这种情况是完美的。您可以自动连接特定的类(实现)或使用接口。 考虑以下示例: 现在,您可以根据注释值选择对象的名称,从而选择使用其中一种实现方式 像这样:
问题内容: 我正在尝试转换此原始sql查询: 在Spring Data规范中,我认为到目前为止我的问题是如何连接这些表。 这是我当前在规范中的转换: 我得到这个异常: 我想补充一点,例如我是Spring框架的新手,因此这是我在Spring上的第一个应用程序,因此我对新手问题表示歉意;) 编辑:添加的实体产品,BeforeRelationShip Product和FollowRelationShip