Tag: spring

Java Spring JPA Repository

我是一个spring的菜鸟,我正在努力。 基本上在开始使用Spring与JPA一起开发我的服务器之前,我试图开始一个简单的例子,以便习惯这个框架。 我已经成功使Spring使用一些框架如Log4J,Swagger等。 现在我正在尝试使用JPA,我可以找到一些解决方案。 我看到了一些关于如何用它开发的博客,以及我选择创建Repository Interfece并extend Repository数千个选项。 您可以看到我的代码: package com.example.model; @Entity public class Person { @Id public Integer id; public String name; public Person(){} } package com.example.repository; public interface PersonRepository extends Repository { Collection findAll(); } package com.example.controller; @RestController public class PersonController { @Autowired private PersonRepository repo; @RequestMapping(value = “/persons”, method = RequestMethod.GET) public Collection […]

如何在执行特定查询后更改会话NLS_COMP / SORT

我的问题特定于一些问题场景,其中使用EntityManager从Spring容器启动事务,然后我从EntityManager获取hibernate会话。 整体流程: 在应用程序中, entityManager.createNativeQuery(searchQuery)可以选择一些数据。 我需要从entityManager获取hibernate会话,然后在我想要设置nls_comp / nls_sort的会话中,或者我可以在entityManager本身中执行查询。 例如,alter session set nls_comp=linguistic 。 完成后我想再次禁用这些选项回到之前的状态。 最有可能是通过关闭hibernate会话或某种机制。 这是正确的方法吗? 我是否应该为2 alter命令启动另一个事务(我试过它给了一些例外)。 请告诉我如何实现它以及如何在spring启动的事务中管理hibernate会话,或者我可以使用entityManager本身实现启用/禁用。

使用Java Conf而不是xml配置Spring Wicket

我使用Spring很短的时间,但对于检票口我是新手。 但我想尝试一下这个框架。 我想配置这两个框架togheter。 但我想避免使用xml配置文件。 我知道wicket可以这样配置,根据这个: http://wicket.apache.org/guide/guide/single.html#helloWorld_2和此: https://github.com/bitstorm/Wicket-tutorial-examples/tree/master/SpringInjectionExample 但是现在我只得到错误: lis 15, 2014 4:31:15 PM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter com.derp.wicket.ProjectFilter java.lang.NoSuchMethodError: org.apache.wicket.protocol.http.WebApplication.setMetaData(Lorg/apache/wicket/MetaDataKey;Ljava/lang/Object;)Lorg/apache/wicket/Application; at org.apache.wicket.spring.injection.annot.SpringComponentInjector.(SpringComponentInjector.java:115) at org.apache.wicket.spring.injection.annot.SpringComponentInjector.(SpringComponentInjector.java:92) at com.derp.wicket.WicketApplication.init(WicketApplication.java:52) at org.apache.wicket.Application.initApplication(Application.java:823) at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:424) at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4603) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5210) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581) at […]

为什么组件扫描不适用于Spring Bootunit testing?

服务类FooServiceImpl使用@Service aka @Component进行注释,这使其有资格进行自动assembly。 为什么在unit testing期间没有拾取和自动assembly此类? @Service public class FooServiceImpl implements FooService { @Override public String reverse(String bar) { return new StringBuilder(bar).reverse().toString(); } } @RunWith(SpringRunner.class) //@SpringBootTest public class FooServiceTest { @Autowired private FooService fooService; @Test public void reverseStringShouldReverseAnyString() { String reverse = fooService.reverse(“hello”); assertThat(reverse).isEqualTo(“olleh”); } } 测试无法加载应用程序上下文, 2018-02-08T10:58:42,385 INFO Neither @ContextConfiguration nor @ContextHierarchy found for test […]

如何在spring bean中注入String属性

我们用配置注入简单属性,如下所示: 你会用注释做什么的?

Apache Oltu + Foursquare集成无法正常工作

我正在开发Spring + Apache Oltu + Foursquare集成示例。 在此示例中,我在此处创建了一个应用程序: https : //developer.foursquare.com/并使用CLIENT_ID和CLIENT_SECRET来调用Foursquare REST API。 有帮助吗? 我收到以下错误: 接收的码:JMGKOSW4RGUPDXCNVQEN42K34UQKHMNGQIAUFY1WLGAMMMEN POSTING:收稿ACCESS_TOKEN:[L3PM3PJFRJAELBM4H3LQ431QGGEIN13RLKPJKNAFFARHT20F] { “的access_token”: “L3PM3PJFRJAELBM4H3LQ431QGGEIN13RLKPJKNAFFARHT20F”}无法访问资源:400 { “元”:{ “代码”:400, “错误类型”: “invalid_auth”,“errorDetail “:”缺少访问凭据。有关详细信息,请参阅https://developer.foursquare.com/docs/oauth.html。“,”requestId“:”59f225be4434b957cad65338“},”response“:{}} 我使用了以下内容: AUTHORIZATION_URL = “https://foursquare.com/oauth2/authenticate”; ACCESS_TOKEN_URL = “https://foursquare.com/oauth2/access_token”; 我使用下面的代码,但看起来像API调用中的一些问题。 请指导 private String getAccessToken(String authorizationCode) throws OAuthSystemException, OAuthProblemException { OAuthClientRequest request = OAuthClientRequest .tokenLocation(ACCESS_TOKEN_URL) .setGrantType(GrantType.AUTHORIZATION_CODE) .setClientId(CLIENT_ID) .setClientSecret(CLIENT_SECRET) .setRedirectURI(REDIRECT_URL) .setCode(authorizationCode) .buildQueryMessage(); //create OAuth […]

用spring mvc流式传输大文件

我正在尝试创建一个下载和上传大文件的应用程序,因此我不希望将文件内容存储在内存中。 在mvc控制器端,我正在使用一个转换为/从InputStream转换的http消息转换器 @Override public InputStream read(Class clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { return inputMessage.getBody(); } @Override public void write(InputStream t, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { try { IOUtils.copy(t, outputMessage.getBody()); } finally { IOUtils.closeQuietly(t); } } 这在服务器端很好用。 在客户端(RestTemplate)方面,我尝试使用相同的转换器,但我得到一个例外,即流已关闭(可能在请求完成时关闭)。 客户端代码: ResponseEntity res = rest.getForEntity(url, InputStream.class); // res.getBody() is closed 我还尝试将输入流复制到缓冲区并创建一个新的ByteArrayInputStream并将其返回到RestTemplate客户端,它运行良好,但它确实需要将数据读入内存,这不符合我的要求。 我的问题是如何保持流打开,直到我处理它而不必将其全部读入内存/文件? 任何想法将不胜感激。 问候,谢伊

编写自定义Spring @Cacheable注释

我目前正在编写一个自定义的@Cacheable注释,除了Spring的@Cacheable提供的那些外,它还将采用额外的元数据属性。 但是,Spring需要知道如何解析这个新的注释。 我的理解是我需要扩展和覆盖AnnotationCacheOperationSource的determineCacheOperations(),以便可以使用从其初始化的适当的CacheableOperation类来解析新的注释。 这是正确的方法吗? 问候, 史蒂夫

处理Spring中过滤引发的exception

我正在尝试实现一个Custom ExceptionTranslationFilter,以便处理我的所有关于身份validation的exception(在我的自定义filter类中,身份validation期间使用的toke的有效性)。 根据在互联网上搜索,没有适当的java配置的可用来源。 请参阅我当前的配置。 protected void configure(HttpSecurity http) throws Exception { http.anonymous().and() .servletApi().and() .headers().and() .authorizeRequests() .antMatchers(“/api/login”).permitAll() .anyRequest().authenticated().and() .addFilterBefore(new StatelessAuthenticationFilter(tokenAuthenticationService), UsernamePasswordAuthenticationFilter.class) .addFilterAfter(new ExceptionTranslationFilter(new AuthenticationExceptionHandler()),ExceptionTranslationFilter.class); http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); } 自定义validation入口点类: public class AuthenticationExceptionHandler implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException { httpServletResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED,”UNAUTHORIZED”); } } validationfilter类: public class StatelessAuthenticationFilter extends GenericFilterBean { […]

JSP表达式语言错误

我创建了一个动态Web模块项目,使用STS和Spring MVC。 问题是我在模型中添加了一个字符串,但它无法使用EL显示在JSP页面上。 我可以知道它有什么问题吗? 以下是详细信息:JSP页面 Spring MVC Home 在web.xml MVC控制器: @Controller public class HomeController { public HomeController() { super(); } @RequestMapping(value=”/home”, method=RequestMethod.GET) public ModelAndView showHomePage() { // View Name – Model Name – Model Data return new ModelAndView(“home”, “message”, “Hello Spring MVC”); } } 调度员servlet.xml中 <!– Implement HandlerInterceptor Declare HandlerInterceptor inside DefaultAnnotationHandlerMapping property or globally […]