Questions tagged «spring»

Spring框架是用于Java平台上的应用程序开发的开源框架。它的核心是对基于组件的体系结构的丰富支持,目前它具有二十多个高度集成的模块。


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

3
Hibernate延迟加载应用程序设计
我倾向于将Hibernate与Spring框架结合使用,它具有声明式事务划分功能(例如@Transactional)。 众所周知,休眠试图尽可能做到非侵入性和透明性,但是事实证明,在使用关系时这更具挑战性lazy-loaded。 我看到了许多具有不同透明度的设计方案。 使关系不延迟加载(例如, fetchType=FetchType.EAGER) 这违反了整个延迟加载的想法。 使用初始化初始化集合 Hibernate.initialize(proxyObj); 这意味着与DAO的耦合较高 尽管我们可以使用定义接口initialize,但不能保证其他实现也可以提供等效的接口。 将交易行为添加到持久Model对象本身(使用动态代理或@Transactional) 我没有尝试过动态代理方法,尽管我似乎从未让@Transactional处理持久对象本身。可能由于该休眠而导致对代理进行操作。 实际进行交易时失去控制 同时提供懒/非延迟API,例如,loadData()和loadDataWithDeps() 强制应用程序知道何时采用哪个例程,再次紧密耦合 方法溢出loadDataWithA(),,..,loadDataWithX() 强制查找依赖关系,例如,仅提供byId()操作 需要很多非面向对象的例程,例如,findZzzById(zid)然后getYyyIds(zid)代替z.getY() 如果事务之间的处理开销很大,则以一对一的方式获取集合中的每个对象可能会很有用。 成为应用程序@Transactional的一部分,而不只是DAO 嵌套事务的可能注意事项 需要适合于事务管理的例程(例如足够小) 对程序的影响较小,尽管可能会导致大量交易 为DAO提供动态提取配置文件,例如,loadData(id, fetchProfile); 应用程序必须知道何时使用哪个配置文件 AoP类型的交易,例如,拦截操作并在必要时执行交易 需要字节码操作或代理使用 执行交易时失去控制 一如既往的黑魔法:) 我错过了任何选择吗? 尝试最小化lazy-loaded关系对应用程序设计的影响时,您首选的方法是什么? (哦,很抱歉,WoT)

5
Java 1.8 ASM ClassReader无法解析类文件-可能是由于尚不支持新的Java类文件版本
我的Web应用程序在JDK 1.7上运行良好,但在1.8下崩溃,但出现以下异常(在使用Jetty 8启动应用程序服务器期间)。我正在使用Spring版本:3.2.5.RELEASE。 例外: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet 我认为该问题是由于spring和依赖它的“ asm.jar”库而发生的。 我该如何解决?
87 java  spring  java-8 

8
@Valid注释在Spring中表示什么?
在以下示例中,该ScriptFile参数标记有@Valid注释。 是什么@Valid注解吗? @RequestMapping(value = "/scriptfile", method = RequestMethod.POST) public String create(@Valid ScriptFile scriptFile, BindingResult result, ModelMap modelMap) { if (scriptFile == null) throw new IllegalArgumentException("A scriptFile is required"); if (result.hasErrors()) { modelMap.addAttribute("scriptFile", scriptFile); modelMap.addAttribute("showcases", ShowCase.findAllShowCases()); return "scriptfile/create"; } scriptFile.persist(); return "redirect:/scriptfile/" + scriptFile.getId(); }

2
为具有不同参数的相同网址格式创建两个方法
我有一个方案,其中一个网址“ serachUser”可能带有两个不同的值(请求参数)userId或UserName。 为此,我创建了两种方法 public String searchUserById(@RequestParam long userID, Model model) public ModelAndView searchUserByName(@RequestParam String userName) 但是我越来越模糊的映射发现异常。Spring有任何方法可以处理这种情况。

3
JpaRepository不支持DML操作[删除查询]
我已经编写了一个查询来删除我的扩展接口中的某些对象JPaRepository,但是当我执行查询时会抛出异常!谁能为我解释一下? 查询: public interface LimitRepository extends JpaRepository<CLimit, Long> { @Query("delete from CLimit l where l.trader.id =:#{#trader.id}") void deleteLimitsByTrader(@Param("trader") CTrader trader); } 我收到此错误,请问,请为我解释一下,谢谢大家:) 例外: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [delete from com.query.domain.CLimit l where l.trader.id =:__$synthetic$__1] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:318) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:369) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:495) …

7
Spring MVC中的ModelAndView中的模型是什么?
具有此基本功能 protected ModelAndView handleRequestInternal(...) { ... return new ModelAndView("welcomePage", "WelcomeMessage", message); } 我知道这将返回modelandView。我知道这welcomePage是我的视图名,因此意味着welcomepage.jsp将调用类似名称。 但我对模型部分感到困惑。是什么WelcomeMessage以及message如何在场景模式的工作?

4
如何以编程方式获取资源目录路径
我有以下目录布局: src 主要 爪哇 资源 sql(数据库脚本) 弹簧(配置) 网络应用 在ServletContextListener类中,我想访问SQL目录下的文件并列出它们。基本上,我的问题是路径,因为我知道简而言之列出目录下的文件是: File folder = new File(path); File[] listOfFiles = folder.listFiles(); 也许我可以使用ServletContextEventObject尝试建立路径resources/sql public void contextInitialized(ServletContextEvent event) { event.getServletContext(); //(getRealPath etc.) } 是否存在以相对的非硬编码方式设置该路径的方法?像new File("classpath:sql")(如果可能的话最好是spring)之类的东西,或者我应该如何处理ServletContext指向resources/sql?
86 java  spring  io 

11
无法解析字符串值中的占位符
我正在尝试使用.properties文件中的属性,但是它似乎不起作用。 这是我的代码: @Service("ServiceFTP") @Transactional public class ServiceFTPImpl implements ServiceFTP { @Value("${project.ftp.adresse}") private String adresse; @Value("${project.ftp.login}") private String compte; @Value("${project.ftp.password}") private String motDePasse; @Value("${project.ftp.root}") private String ROOT; [...] } 此类使用@Value批注获取属性。它也被声明为Spring Service并链接到我的infraContext.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <context:property-placeholder location="classpath:context-core.properties"/> [...] </beans> 使用context:property-placeholder,我将此文件链接到我的context-core.properties文件: project.ftp.adresse = localhost project.ftp.login …
86 java  spring 

16
带分页的Spring数据和本机查询
在一个网络项目中,将最新的spring-data(1.10.2)与MySQL 5.6数据库一起使用,我试图使用带有分页的本机查询,但org.springframework.data.jpa.repository.query.InvalidJpaQueryMethodException在启动时遇到了问题。 更新:20180306此问题已在Spring 2.0.4中修复。对于仍对旧版本感兴趣或仍在使用旧版本的人,请查看相关答案和评论以找到解决方法。 根据spring-data文档中使用@Query的示例50,可以指定查询本身和countQuery,如下所示: public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1", countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", nativeQuery = true) Page<User> findByLastname(String lastname, Pageable pageable); } 出于好奇,在NativeJpaQuery课堂上我可以看到它包含以下代码来检查其是否为有效的jpa查询: public NativeJpaQuery(JpaQueryMethod method, EntityManager em, String queryString, EvaluationContextProvider …

3
在Spring MVC应用程序中实现Swagger的“简单”方法
我有一个用简单的Spring编写的ReSTFul API(没有Spring Boot,没有花哨的东西!)。我需要在其中实现Swagger。到目前为止,互联网上的每个页面都以令人困惑的配置和肿的代码(使我根本无法移植)而使我发疯。 有没有人有一个示例项目(或一组详细的步骤)可以帮助我实现这一目标?特别是,我正在寻找使用swagger-springmvc的良好示例。我知道它有“样本”,但充其量,深奥的代码令人不快。 我必须澄清,我不是在寻找“为什么Swagger就是最好的”。我没有使用(或当前的任务将不使用)Spring Boot等。

22
Spring JSON请求获取406(不可接受)
这是我的javascript: function getWeather() { $.getJSON('getTemperature/' + $('.data option:selected').val(), null, function(data) { alert('Success'); }); } 这是我的控制器: @RequestMapping(value="/getTemperature/{id}", headers="Accept=*/*", method = RequestMethod.GET) @ResponseBody public Weather getTemparature(@PathVariable("id") Integer id){ Weather weather = weatherService.getCurrentWeather(id); return weather; } spring-servlet.xml <context:annotation-config /> <tx:annotation-driven /> 收到此错误: GET http://localhost:8080/web/getTemperature/2 406 (Not Acceptable) 标头: 响应标题 Server Apache-Coyote/1.1 Content-Type text/html;charset=utf-8 …
85 java  javascript  ajax  json  spring 

4
Spring Boot应用程序中的特定于环境的application.properties文件
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 22天前关闭。 改善这个问题 在我的Spring Boot应用程序中,我想创建特定于环境的属性文件。我在战争中应用程序的包装类型,我正在嵌入式tomcat中执行它。我使用sts并从sts本身执行main。 我可以拥有特定于环境的属性文件,例如application-$ {env-value} .properties吗? 在上述情况下,env-value的值将为local / devl / test / prod 在哪里设置环境值文件?对于本地,我可以通过sts将其设置为jvm参数 谁在S​​pring Boot应用程序中读取application.properties。 如何加载环境特定的属性文件?例如-如果我在特定于环境的属性文件中设置数据库uid,pwd,schema等,在这种情况下,数据源将能够理解其中的属性吗? 我可以同时使用application.properties和application-local.properties文件吗?

7
@Test之后的回滚事务
首先,我在StackOverflow上找到了很多与此相关的线程,但是它们都没有真正帮助我,因此很抱歉提出可能重复的问题。 我正在使用spring-test运行JUnit测试,我的代码如下所示 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {}) public class StudentSystemTest { @Autowired private StudentSystem studentSystem; @Before public void initTest() { // set up the database, create basic structure for testing } @Test public void test1() { } ... } 我的问题是我希望我的测试不影响其他测试。所以我想为每个测试创建类似回滚的东西。我为此进行了很多搜索,但到目前为止我什么都没找到。我为此使用Hibernate和MySql

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.