spring-mvc 相关问题

基于模型 - 视图 - 控制器(MVC)模式构建Java Web应用程序的框架。它从底层视图技术中提升灵活和分离的代码。

StreamingResponseBody 中的异常处理

我正在尝试捕获在 StreamingResponseBody 的实现中抛出的异常,我可以看到在类内部抛出异常,但是抛出的异常对该方法不可见...

回答 2 投票 0

同时加载 mvc-dispatcher-servlet.xml 和 applicationContext.xml?

我正在使用 Spring 3 MVC。 我有 mvc-dispatcher-servlet.xml 和 applicationContext.xml。 但是 applicationContext.xml 没有加载,只有 mvc-dispatcher-servlet.xml 正在加载。 我的

回答 3 投票 0

浏览器和Spring MVC后端之间加密和解密密码

我想在浏览器和 Spring MVC 后端之间安全地传输和处理用户密码。密码在客户端加密,验证前在服务器端解密

回答 1 投票 0

基于 Java 的注释配置不起作用

我正在尝试学习 Spring 专门用于基于 java 的注释配置,因为我发现它比基于 xml 的配置更容易理解,但是无论我观看多少视频或如何...

回答 1 投票 0

如何在具有不同端点的同一端口上使用多个两个 Spring Boot Web 应用程序?

我有两个 Spring Boot Web 应用程序。我希望这些应用程序部署在具有不同端点的同一端口上,例如 应用程序 1 - xx.xx.xx.xx:80/app1 应用程序 2 - xx.xx.xx.xx:80/app...

回答 1 投票 0

添加QueryDSL时,JPAqueryfactory无法解析为类型i springboot

我正在尝试了解在 springboot 中使用 JUnit 进行测试驱动开发。当我添加 queryDSL 查询时,我收到编译时错误,指出 JPAqueryfactory 无法解析为类型...

回答 1 投票 0

SpringMVC接受表单数据

@NoArg 数据类用户( var 用户名:字符串, var 密码:字符串, // ... ) // 豆类 公共类用户{ 私有 int id; 私有字符串名字; 私有字符串姓氏; ...

回答 1 投票 0

替换 spring-security 添加的默认 RememberMeAuthenticationProvider

我需要提供我自己的自定义 RememberMeAuthenticationProvider 提供程序,我知道该怎么做。但默认创建的提供者仍然存在于 ProviderManager 提供者列表中。 我可以补吗...

回答 1 投票 0

Spring MVC:如何返回自定义 404 错误页面?

我正在寻找一种干净的方法,当找不到请求的资源时,在 Spring 4 中返回自定义的 404 错误页面。对不同域类型的查询应该会导致不同的错误页面。 这里...

回答 9 投票 0

如何在构造函数中使用注入的依赖项?

我有一个 Spring 组件,我在其中注入依赖项(其他组件),但我无法在构造函数中使用这些注入的依赖项,因为它们在构造函数调用时为 null。是

回答 1 投票 0

Spring Boot:loadUserByUsername 方法冲突 - 需要帮助解决问题

我正在 Spring Boot 应用程序中实现 UserDetailsService 接口,以使用自定义 loadUserByUsername 方法进行身份验证。但是,我当前的

回答 1 投票 0

在 Spring Web REST 控制器中接受 DTO 的 CSV

我需要创建一个接受 DTO 的 CSV 文件的 POST 端点。 我该如何实现它? Spring Web 可以自动将 JSON 转换为我的自定义对象,因此我不必接受字符串然后 p...

回答 1 投票 0

禁用SpringSecurity的SavedRequest存储逻辑

我们使用 Spring Security 来管理身份验证。 我们看到的问题是,当用户的会话在调出 GET 表单和点击保存按钮之间超时时......

回答 5 投票 0

无法在 spring oauth 身份验证服务器中的服务器元数据中设置自定义值

到目前为止我对服务器元数据的配置 授权服务器元数据端点 { 授权服务器元数据端点 -> 授权服务器元数据端点。

回答 1 投票 0

Spring MVC 控制器返回类型

我见过控制器返回字符串(表示视图)的示例 @RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET) 公共字符串findOwner(@PathVariable字符串

回答 7 投票 0

www-authenticate 标头破坏了 JettyClientHttpConnector

环境 春季启动3.3.4 春季网页 6.1.1 经营地点旧环境 春季启动 2.7.18 春季网页 5.3.31 语境 我们已从 Spring Boot 2.7.18 环境迁移到 Spring B...

回答 1 投票 0

使用 Feign 客户端执行计划任务的 Spring Boot 应用程序中出现循环 HTTP 400 错误

我在使用 Feign 客户端进行服务间通信的 Spring Boot 应用程序中遇到循环错误模式。这个问题特别出现在执行 HTTP POST 的计划任务中

回答 1 投票 0

所需的字符串参数“licenceplate”不存在”

我检查了针对类似问题提出的不同现有问题,但我的问题没有得到任何帮助。 事实上,我不能像在这个问题或这个问题中那样使用@RequestBody。 我正在努力...

回答 1 投票 0

Hibernate内存泄漏-BoundedConcurrentHashMap

请帮忙解决Spring MVC应用程序中的内存问题 请找到我的交易配置 请帮助解决 Spring MVC 应用程序中的内存问题 请查看我的交易配置 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" p:driverClass="${jdbc.driverClassName}" p:jdbcUrl="${jdbc.databaseurl}${jdbc.encoding}" p:user="${jdbc.username}" p:password="${jdbc.password}" p:minPoolSize="${minPoolSize}" p:maxPoolSize="${maxPoolSize}" p:checkoutTimeout="${checkoutTimeout}" p:maxIdleTime="${maxIdleTime}" p:idleConnectionTestPeriod="${idleConnectionTestPeriod}" /> jdbc: minPoolSize=15 initalPollSize=25 maxPoolSize=60 #Give up waiting for a connection after this many milliseconds checkoutTimeout=18000 maxIdleTime=3600 idleConnectionTestPeriod=300 maxStatements=100 numHelperThreads=15 acquireIncrement=10 <!--session factory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${jdbc.dialect}</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.generate_statistics">false</prop> </props> </property> <property name="entityInterceptor" ref="auditInterceptor"> </property> </bean> <!-- transaction manager --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- transaction interveptor --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager" /> </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>*Service</value> </list> </property> <property name="interceptorNames"> <list> <value>exceptionInterceptor</value> <value>transactionInterceptor</value> </list> </property> </bean> 性能测试后,我的内存没有被释放。因此,在分析堆转储时出现以下错误 “org.apache.catalina.loader.WebappClassLoader @ 0x76000b8e8”加载的“org.hibernate.internal.SessionFactoryImpl”的一个实例占用 73,446,008 (32.66%) 字节。内存累积在由“org.apache.catalina.loader.WebappClassLoader @ 0x76000b8e8”加载的“org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment[]”的一个实例中。 org.hibernate.internal.SessionFactoryImpl @ 0x7624efeb0 136 49,987,288 34.31% \org.hibernate.engine.query.spi.QueryPlanCache @ 0x7630b1250 32 47,674,176 32.72% .\org.hibernate.internal.util.collections.BoundedConcurrentHashMap @ 0x763259a58 48 47,554,336 32.64% ..\org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment[32] @ 0x7632d1c60 144 47,554,288 32.64% 班级名称|浅堆|保留堆|百分比 org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment[32] @ 0x7632d1c60 | 144 | 144 47,554,288 | 47,554,288 32.64% |- org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment @ 0x76325ac88 | 48 | 48 1,497,688 | 1,497,688 1.03% |- org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment @ 0x76325ac58 | 48 | 48 1,631,272 | 1,631,272 1.12% | |- org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LIRSHashEntry @ 0x768fd54c0 | 56 | 56 880 | 880 0.00% | | |- org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification @ 0x7671eb8e8 | 32 | 32 48 | 48 0.00% | | | '- org.hibernate.engine.query.spi.sql.NativeSQLQueryReturn[0] @ 0x768ff16d0 | 16 | 16 16 | 16 0.00% | | |- org.hibernate.engine.query.spi.NativeSQLQueryPlan @ 0x768ff1640 | 24 | 520 | 520 0.00% | | |- java.lang.String @ 0x768ff1658 选择不同的 column FROM table WHERE column IN (94316) | 24 | 256 | 256 0.00% 请帮忙解决问题 我们在堆中观察到一个查询。 来自表,其中 statusFlg='Y' 且 deleteFlg='N' 且 id="+autoGenerateId 当我们将查询更改为 来自表,其中 statusFlg='Y' 且 deleteFlg='N' 且 id= :instanceid").setParameter("instanceId,autoGenerateId) 会话对象正在被垃圾收集。 有人可以详细解释一下吗 我刚刚遇到了类似的问题。 JPA程序会缓存从JPQL翻译过来的SQL语句,以避免因重复查询而频繁转换的开销。当我使用 JVM 分析工具检查内存使用情况时,我发现缓存的 SQL 查询占用了高达 3000MB 的内存空间! 为了解决这个问题,我调整了可以缓存的 SQL 语句的最大数量,结果成功了。 祝你好运!

回答 2 投票 0

使用thymeleaf +spring创建自定义标签(就像JSP)

我正在尝试使用 Thymeleaf 创建自定义标签,就像在 JSP 中一样。 我现在拥有的标签是: 我正在尝试使用 Thymeleaf 创建自定义标签,就像在 JSP 中一样。 我现在的标签是: <select th:include="fragments/combobox :: combobox_beans (beans=${@accountService.getAccounts()}, innerHTML='id,description,currency', separator=' - ', dumbHtmlName='List of accounts', name='sender' )" th:remove="tag"></select> 目的只是定义 beans 列表、要在屏幕上显示的 bean 属性、它们之间的分隔符、显示为本机模板时的默认值以及我们正在此处处理的原始 bean 的属性名称。 combobox.html: <div th:fragment="combobox_beans (beans, innerHTML, separator, dumbHtmlName, name)"> <select th:field="*{__${name}__}" class="combobox form-control" required="required"> <option th:each="obj : ${beans}" th:with="valueAsString=${#strings.replace( 'obj.' + innerHTML, ',', '+'' __${separator}__ ''+ obj.')}" th:value="${obj}" th:text="${valueAsString}" > <p th:text="${dumbHtmlName}" th:remove="tag"></p> </option> </select> 我需要选项标签的文本基于片段的innerHTML 属性(innerHTML='id,description,devise')中设置的属性。 我最终对这段文字有一个选择: <option value="...">obj.id+' - '+ obj.description+' - '+ obj.currency</option> 而不是想要的结果 <option value="...">2 - primary - USD</option> 我知道这是由于使用了 Strings 库导致了一个字符串。 有没有办法 Thymeleaf 可以重新评估这个字符串,使其再次被理解为一个对象? 也许在这种情况下使用字符串库是错误的...也许我需要使用 th:each 将每个 bean 作为对象处理并读取其属性,但同样,如何仅获取指定的属性在innerHtml 中? 有人对此有解决方案或解决方法吗? 谢谢。 如果有一种方法可以单独在 Thymeleaf/Spring 表达式中完成你想要的事情,那么它肯定非常复杂且冗长,而且读起来可能会很痛苦。 更简单的方法是将自定义实用程序对象添加到表达式上下文中。需要很少的代码。 这个答案表明了这一点。 然后您需要将新方言作为附加方言添加到 Spring xml 配置中的模板引擎中。假设你有一个相当标准的 Spring 配置,它应该与此类似。 <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> <property name="templateResolver" ref="templateResolver" /> <property name="additionalDialects"> <set> <bean class="mypackage.MyUtilityDialect" /> </set> </property> </bean> 现在介绍实用程序对象 您想要的是按名称从对象中获取属性,并将它们的值与分隔符组合起来。属性名称列表似乎可以是任意大小。要按名称访问属性,最方便的方法是使用像 Apache beanutils 这样的库。 使用 Java 8 流库、lambda 和 Beanutils,您的自定义实用程序对象可能看起来像这样: public class MyUtil { public String joinProperties(Object obj, List<String> props, String separator){ return props.stream() .map(p -> PropertyUtils.getProperty(obj,p).toString()) .collect(Collectors.joining(separator)) } } 然后,当您将方言添加到 SpringTemplateEngine 时,您可以调用您的实用程序: th:with="valueAsString=${#myutils.joinProperties(obj,properties,separator)}" 我已将 innerHTML 参数替换为 properties,这是一个 List<String>,因为它更有意义。它本质上是一个属性名称列表,Spring EL 支持内联列表。 您的调用标签应如下所示。 <select th:include="fragments/combobox :: combobox_beans (beans=${@accountService.getAccounts()}, properties=${ {'id','description','currency'} }, separator=' - ', dumbHtmlName='List of accounts', name='sender' )" th:remove="tag"></select> 解决了! 创建自定义方言: 公共类 CnmCustomDialect 扩展 AbstractProcessorDialect { public CnmCustomDialect() { super("CNM Tags", "cnmtags", StandardDialect.PROCESSOR_PRECEDENCE); } @Override public Set<IProcessor> getProcessors(String dialectPrefix) { Set<IProcessor> processors = new HashSet<>(); processors.add(new TableBuilderElementTagProcessor(getPrefix())); return processors; } } 将方言注册到WebMvcConfigurer @Bean 公共 SpringTemplateEngine templateEngine(ITemplateResolver templateResolver, SpringSecurityDialect sec) { final SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.addDialect(new CnmCustomDialect()); return templateEngine; } 3.实现自定义AbstractElementTagProcessor -使用 doProcess() 方法通过此标记变量从 HTML 获取输入并绑定到处理程序变量 -String modelType = tag.getAttributeValue("tt"); -Content=”根据需要添加 html 您的内容” -structHandler.replaceWith(content, false); 公共类 TableBuilderElementTagProcessor 扩展 AbstractElementTagProcessor { private ApplicationContext applicationContext; public TableBuilderElementTagProcessor(String dialectPrefix) { super(TemplateMode.HTML, dialectPrefix, "table", true, null, false, StandardDialect.PROCESSOR_PRECEDENCE); } @Override protected void doProcess(ITemplateContext context, IProcessableElementTag tag,IElementTagStructureHandler structureHandler) { applicationContext = SpringContextUtils.getApplicationContext(context); 字符串内容=“”; StructureHandler.replaceWith(content, false);}} 谢谢

回答 0 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.