Questions tagged «spring-mvc»

基于模型-视图-控制器(MVC)模式构建Java Web应用程序的框架。它促进了与基础视图技术的灵活解耦的代码。

16
Spring ApplicationContext-资源泄漏:“上下文”从未关闭
在spring MVC应用程序中,我使用以下方法在服务类之一中初始化变量: ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/userLibrary.xml"); service = context.getBean(UserLibrary.class); UserLibrary是我在应用程序中使用的第三方工具。上面的代码为'context'变量生成警告。该警告如下所示: Resource leak: 'context' is never closed 我不明白警告。由于该应用程序是Spring MVC应用程序,因此在运行该应用程序时,我无法真正关闭/销毁该上下文,因为我引用该服务。警告到底想告诉我什么?

3
Spring BeanPostProcessor到底如何工作?
我正在研究Spring Core认证,我对Spring如何处理bean的生命周期,尤其是bean后处理器有疑问。 所以我有这个架构: 我很清楚这是什么意思: 在“ 装入Bean定义”阶段执行以下步骤: 的@Configuration类被处理和/或@Components被扫描和/或XML文件进行解析。 Bean定义已添加到BeanFactory(每个索引均在其ID下进行索引) 调用特殊的BeanFactoryPostProcessor bean时,它可以修改任何bean的定义(例如,用于属性-占位符值的替换)。 然后,在Bean创建阶段执行以下步骤: 默认情况下,每个Bean都急切地实例化(以正确的顺序创建并注入了依赖项)。 依赖项注入后,每个bean都会进入后期处理阶段,在该阶段中可能会进行进一步的配置和初始化。 在后期处理之后,bean被完全初始化并可以使用(通过其id进行跟踪,直到上下文被销毁) 好的,这对我来说很清楚,我也知道有两种类型的Bean后处理器: 初始化程序:如果有指示,则初始化Bean(即@PostConstruct)。 和所有其余的:其允许额外的配置和其之前或初始化步骤之后运行 我张贴这张幻灯片: 所以对我来说很清楚初始化器 bean后处理器是什么(它们是用@PostContruct注释注释的方法,这些方法在setter方法之后立即自动调用(因此在依赖项注入之后),我知道我可以使用执行一些初始化批处理(如上例中那样填充缓存)。 但是,到底哪个代表另一个bean后处理器呢?当我们说这些步骤在初始化阶段之前或之后执行时,这是什么意思? 因此,实例化了我的bean并注入了它的依赖项,因此初始化阶段完成了(通过执行@PostContruct带注释的方法)。我们说在初始化阶段之前使用Bean后处理器是什么意思?这意味着它发生在@PostContruct注释方法执行之前?这是否意味着它可能发生在依赖项注入之前(在调用setter方法之前)? 当我们说它是在初始化步骤之后执行时,我们到底是什么意思。这意味着它会在执行@PostContruct带注释的方法之后发生,还是什么? 我可以很容易地想到为什么我需要一个@PostContruct带注释的方法,但是我无法弄清楚另一种bean后处理器的典型示例,您能告诉我一些什么时候使用的典型示例吗?

9
如何在Spring MVC Controller获取呼叫中提取IP地址?
我正在从事Spring MVC控制器项目,在该项目中我从浏览器进行GET URL调用- 以下是我从浏览器发出GET调用的网址- http://127.0.0.1:8080/testweb/processing?workflow=test&conf=20140324&dc=all 下面是在浏览器中调用后调用的代码- @RequestMapping(value = "processing", method = RequestMethod.GET) public @ResponseBody ProcessResponse processData(@RequestParam("workflow") final String workflow, @RequestParam("conf") final String value, @RequestParam("dc") final String dc) { System.out.println(workflow); System.out.println(value); System.out.println(dc); // some other code } 问题陈述:- 现在有什么方法可以从某些标头中提取IP地址吗?这意味着我想知道从哪个IP地址发出呼叫,这意味着无论谁在URL上方进行呼叫,我都需要知道其IP地址。这可能吗?


5
春天的表单标签中的modelAttribute和commandName属性之间的区别?
在Spring 3中,我在jsp的form标记中看到了两个不同的属性 <form:form method="post" modelAttribute="login"> 在这种情况下,属性modelAttribute是表单对象的名称,其属性用于填充表单。我用它来发布表单,并在控制器中用来@ModelAttribute捕获价值,调用验证器,应用业务逻辑。这里一切都很好。现在 <form:form method="post" commandName="login"> 此属性有什么用,它也是我们要填充其属性的表单对象吗?

10
如何配置Spring Security以允许无需身份验证即可访问Swagger URL
我的项目有Spring Security。主要问题:无法访问http:// localhost:8080 / api / v2 / api-docs上的大写URL 。它说缺少或无效的授权标头。 浏览器窗口的屏幕快照 我的pom.xml具有以下条目 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> SwaggerConfig: @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2).select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { ApiInfo apiInfo = new …

9
为什么Spring MVC会以404响应并报告“在DispatcherServlet中未找到带有URI […]的HTTP请求的映射”?
我正在编写部署在Tomcat上的Spring MVC应用程序。请参见以下最小,完整和可验证的示例 public class Application extends AbstractAnnotationConfigDispatcherServletInitializer { protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { }; } protected Class<?>[] getServletConfigClasses() { return new Class<?>[] { SpringServletConfig.class }; } protected String[] getServletMappings() { return new String[] { "/*" }; } } 哪里SpringServletConfig是 @Configuration @ComponentScan("com.example.controllers") @EnableWebMvc public class SpringServletConfig { @Bean …

7
用Jackson序列化枚举
我下面有一个枚举: public enum OrderType { UNKNOWN(0, "Undefined"), TYPEA(1, "Type A"), TYPEB(2, "Type B"), TYPEC(3, "Type C"); private Integer id; private String name; private WorkOrderType(Integer id, String name) { this.id = id; this.name = name; } //Setters, getters.... } 我用控制器(new OrderType[] {UNKNOWN,TYPEA,TYPEB,TYPEC};)返回枚举数组,Spring将其序列化为以下json字符串: ["UNKNOWN", "TYPEA", "TYPEB", "TYPEC"] 强迫Jackson像POJO一样序列化枚举的最佳方法是什么?例如: [ {"id": 1, "name": …

3
Spring @ResponseBody注释如何工作?
我有一种通过以下方式注释的方法: /** * Provide a list of all accounts. */ // TODO 02: Complete this method. Add annotations to respond // to GET /accounts and return a List<Account> to be converted. // Save your work and restart the server. You should get JSON results when accessing // http://localhost:8080/rest-ws/app/accounts @RequestMapping(value="/orders", method=RequestMethod.GET) …
89 java  json  spring  rest  spring-mvc 

9
如何将多部分文件转换为文件?
谁能告诉我将多部分文件(org.springframework.web.multipart.MultipartFile)转换为File(java.io.File)的最佳方法是什么? 在我的春季MVC Web项目中,我正在以Multipart文件的形式上传文件。我必须将其转换为File(io),因此我可以将此图像存储服务称为Cloudinary。它们仅采用(File)类型。 我进行了很多次搜索,但都失败了。如果有人知道一种标准的方法,请告诉我?n

16
@Autowired-未找到依赖类型的合格bean
我通过使用Spring和Hibernate为服务创建实体,服务和JUnit测试来开始我的项目。所有这些都很好。然后,我添加了spring-mvc来使用许多不同的分步教程来制作此Web应用程序,但是当我尝试使用@Autowired注释制作Controller时,在部署过程中会从Glassfish中得到错误提示。我猜出于某种原因,Spring无法看到我的服务,但是经过多次尝试,我仍然无法处理它。 测试服务 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/beans.xml"}) 和 @Autowired MailManager mailManager; 正常工作。 也没有@Autowired的控制器,我可以在Web浏览器中打开项目而不会遇到麻烦。 /src/main/resources/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> <context:property-placeholder location="jdbc.properties" /> <context:component-scan base-package="pl.com.radzikowski.webmail"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!--<context:component-scan base-package="pl.com.radzikowski.webmail.service" …

8
如何在春季获得会话对象?
我对Spring和Spring安全性比较陌生。 我试图编写一个程序,需要使用Spring安全性在服务器端对用户进行身份验证, 我想出了以下几点: public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{ @Override protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken) throws AuthenticationException { System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated()); } @Override protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { System.out.println("Method invoked : retrieveUser"); //so far so good, i can authenticate user here, and throw …

7
Spring 5.0.3 RequestRejectedException:由于网址未规范化,因此请求被拒绝
不知道这是Spring 5.0.3的错误还是新功能可以修复我的问题。 升级后,出现此错误。有趣的是,此错误仅在我的本地计算机上。使用HTTPS协议的测试环境中的相同代码可以正常工作。 继续... 我收到此错误的原因是因为我用于加载结果JSP页面的URL是/location/thisPage.jsp。评估代码request.getRequestURI()会给我结果/WEB-INF/somelocation//location/thisPage.jsp。如果我将JSP页面的URL修复为此location/thisPage.jsp,则一切正常。 所以我的问题是,我应该/从JSP代码的路径中删除吗,因为这是今后的要求。或者Spring引入了一个错误,因为我的机器和测试环境之间的唯一区别是协议HTTP与HTTPS。 org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:123) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:194) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)

18
java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet
我正在使用spring 3.1.0.RELEASE,我的servlet容器是tomcat 7,我的IDE是eclipse indigo ,并且包含DispatcherServlet的jar spring-webmvc-3.1.0.RELEASE.jar 位于lib文件夹中,但是当运行该应用程序,我得到了例外: java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) please advise why i am getting this exception, and how to …

4
何时使用@RestController与@RepositoryRestResource
我一直在研究如何在REST中使用Spring的各种示例。我们的最终目标是HATEOAS/HAL安装Spring 我已经看到了两种在Spring中渲染REST的不同方法 通过@RestController控制器内 通过@RepositoryRestResource存储库中 我在努力寻找的是为什么您会使用一个而不是另一个。尝试实施HAL哪种方法最好? 我们的数据库后端是Neo4j。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.