基于模型 - 视图 - 控制器(MVC)模式构建Java Web应用程序的框架。它从底层视图技术中提升灵活和分离的代码。
www-authenticate 标头破坏了 JettyClientHttpConnector
环境 春季启动3.3.4 春季网页 6.1.1 经营地点旧环境 春季启动 2.7.18 春季网页 5.3.31 语境 我们已从 Spring Boot 2.7.18 环境迁移到 Spring B...
使用 Feign 客户端执行计划任务的 Spring Boot 应用程序中出现循环 HTTP 400 错误
我在使用 Feign 客户端进行服务间通信的 Spring Boot 应用程序中遇到循环错误模式。这个问题特别出现在执行 HTTP POST 的计划任务中
我检查了针对类似问题提出的不同现有问题,但我的问题没有得到任何帮助。 事实上,我不能像在这个问题或这个问题中那样使用@RequestBody。 我正在努力...
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 语句的最大数量,结果成功了。 祝你好运!
使用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);}} 谢谢
我希望它不会被标记为固执己见或过于模糊,但这是我的简短故事和问题: 我开始了 ASP.NET Webform 的开发冒险,只是为了迁移到 Salesforce(Apex + Visualforce...
我有一个 Spring Request Scoped 组件,它进行网络调用来获取一些数据: @成分 公共类 NetworkDataProvider { @注入 私有ServiceClient 服务客户端; p...
我认为我需要的是 Django 中的反向 url 解析。假设我有一个 AddUserController ,其内容如下: @控制器 @RequestMapping("/创建用户") 公开课
我是Java新手,一直在寻找答案,但我一定想念它。所以问题是: 这是我的控制器: 公共 REntity getPersonById( @PathVariable(&qu...
找到 org.springframework.security.authentication.AuthenticationManager 类型接口的 3 个 bean,但没有一个被标记为主要
当我启动我的应用程序时,出现以下错误。我不确定如何在这里设置主要 bean。 | AnnotationConfigServletWebServerApplicationContext | 注释配置ServletWebServerApplicationContext例外 上下文初始化期间遇到...
如何在 Springfox Swagger 提供的 Swagger /v2/api-docs 中启用 CORS 标头?
我的项目中有以下文件: @配置 @Order(Ordered.LOWEST_PRECEDENCE) 公共类 SwaggerConfig { @豆 公共 Docket apiSwagger2Documentation() { .... } } 并且在
所以我编写了一个网站(使用html、css和Spring)。 有一个带有多个按钮的表单,每次我按下按钮时,网站就会“闪烁”。 我不知道如何更好地描述这一点...
我正在将 Hibernate 与 Spring MVC 结合使用来开发我正在开发的应用程序,最近遇到了一个奇怪的错误。我将在下面发布堆栈跟踪 警告:org.hibernate.e...
我有一个到/foo.jsp的映射URL,它重定向到控制器,但它不被spring处理并返回404。看起来URL被忽略并直接发送到tomcat。是否可以...
不允许 HTTP 405 - Spring Boot + Spring Security
我有一个简单的 REST API,可以与数据库一起使用。在我添加安全部分之前它工作正常。现在,它在 POST 和 DELETE 请求上给出 HTTP 405 Not allowed。我不知道为什么。获取
网关处的 Prometheus 指标:未知,而不是 uri 中的路径
我在我的项目中使用普罗米修斯指标。 在网关中,我在指标中看到未知 http_server_requests_seconds_count{异常=“无”,方法=“PUT”,结果=“成功&q...
使用 spring/jackson 将 Kotlin 数据类转换为 JSON
我试图将一些数据类公开为 JSON 对象,但有些东西不起作用。 我有以下数据类: 数据类链接( @JsonProperty(“rel”) @JsonView(View.Bind::class...
经过长时间的详尽搜索,寻求帮助。我正在 Spring WebFlux 和 Spring Security 中编写一个 JwtTokenFilter 。问题是这个过滤器在一次请求中被调用两次...
如何从 Spring 中的 X-Forwarded-For 标头检索 IP 地址的完整列表?
我正在使用 Spring (Spring Web) 并尝试从请求中确定客户端 IP 地址的完整链。我使用的代码基于 Spring 的 ForwardedHeaderUtils。目前,它仅...
Spring data jpa repo,为什么需要接口服务和服务实现
我刚刚开始使用 Spring Data JPA 进行 Spring Boot 工作。当我从表生成模型时,我创建一个扩展 JpaRepository 的 modelRepo 公共接口 userRepository