Articles of spring

Bean和EBean概念Android注释

对不起,我一般都是Android注释和dependency injection的新手。 我试图了解事情的运作方式以及使用Android Annotations获得的好处。 我已经研究过示例,在Android开发中一切都很清楚@EActivity, @ViewById, @App和其他广泛使用的注释。 我对理解Ebean 。 我已经使用spring for Java,很明显我们在xml文件中声明bean并且只是在代码中使用它们,我们可以在xml文件中轻松更改,只提供具体的实现,并且它将在我们使用的任何地方更改来自AppContext的Id的bean。 但我不明白在Android Annotations的情况下使用bean的目的,可能是我一般不理解DI。 @EBean public class MyClass { // … } @EActivity public class MyActivity extends Activity { @Bean MyClass myClass; } 我们在这有什么好处? 我们只省略了myClass = new MyClass(); ? 就这样 ? 另一个例子是Singletone范围。 @EBean(scope = Scope.Singleton) public class MyClass { // … } 在这种情况下我们有一些好处,我们不必手动创建实例,私有构造函数并检查它是否为null(延迟初始化)….. 对于这种情况,我理解它可以节省时间,但在第一个例子中似乎没有任何好处,我们没有xml文件,我们可以在bean之间构建我们的bean依赖关系注释。 请帮我理解这个。 […]

Spring Android:使用RestTemplate和https以及cookie

我需要在Android本机应用程序的https连接上使用cookie。 我正在使用RestTemplate。 检查其他线程(例如, 使用RestTemplate设置安全cookie )我能够在http连接中处理cookie: restTemplate.setRequestFactory(new YourClientHttpRequestFactory()); 其中YourClientHttpRequestFactory extends SimpleClientHttpRequestFactory 这在http上运行正常但在https上运行不正常。 另一方面,我能够解决Android信任SSL证书的https问题: restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpUtils.getNewHttpClient())); 这里描述了HttpUtils: http : //www.makeurownrules.com/secure-rest-web-service-mobile-application-android.html 我的问题是我需要使用ClientHttpRequestFactory的单个实现。 所以我有3个选择: 1)find一种使用SimpleClientHttpRequestFactory处理https的方法 2)find一种使用HttpComponentsClientHttpRequestFactory处理cookie的方法 3)使用另一种方法

可以在Android应用程序中使用Spring Framework吗?

我正在编写一个Android应用程序,它需要在应用程序需要的数据访问API中注入依赖项(我正在实现此API)。 我不想手动编写dependency injection。 因此,我在考虑使用Spring。 我意识到弹簧有两个版本。 常规版和Android版。 可以在android应用程序中使用常规版本,因为我只想要dependency injectionfunction并且已经有了文件。

Android HttpUrlConnection:发布Multipart

我正在尝试将测试文件发布到使用Android部署在tomcat上的spring rest servlet。 我正在开发Android 4.1.2,但我在4.0.3上validation了同样的问题。 问题是文件上载需要很长时间(对于4MB文件大约需要70秒),也在本地网络中。 使用3g连接可以节省时间。 我已经排除它可能是服务器问题:使用curl执行相同的调用需要1/2秒,并且使用apache作为后端结果是相同的。 使用HttpClient工作正常。 我正在使用Spring Android RestClient 1.0.1.RELEASE,并且考虑到Android版本以及我没有覆盖默认行为的事实,它使用HttpUrlConnection而不是HttpClient来发出http请求。 我还实现了我的自定义ClientHttpRequestFactory来操作SSL连接的一些细节,我已经定义了自己的ClientHttpRequestInterceptor实现来修改身份validation头。 我还设置了setBufferRequestBody(false)以避免对大文件的OutOfMemoryException 。 但是这个属性对所需的时间没有影响。 MyClientHttpRequestFactory : public class MyClientHttpRequestFactory extends SimpleClientHttpRequestFactory{ @Override protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException { super.prepareConnection(connection, httpMethod); connection.setConnectTimeout(240 * 1000); connection.setReadTimeout(240 * 1000); if (“post”.equals(httpMethod.toLowerCase())) { setBufferRequestBody(false); }else { setBufferRequestBody(true); } } @Override protected HttpURLConnection openConnection(URL […]

使用spring for androidrestPOST对象

我正在尝试使用spring for android发布到rest服务(我是新来的) 宁静的服务有这种结构 @POST @Path(“/ider”) @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public SearchOutRO hashTrackInJSON(SearchInRO in); with(缩短的目标代码): public class SearchInRO implements Serializable { private Double latitud; private Double longitud; } public class SearchOutRO implements Serializable { private Integer searchId; } 所以我正在尝试这个(来自android) String url = BASE_URL + “ider”; HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.setContentType(MediaType.APPLICATION_JSON); MultiValueMap body = new LinkedMultiValueMap(); body.add(“searchInRO[latitud]”, […]

带有参数的Spring RestTemplate HTTP Post会导致400错误的请求错误

可能重复需要有关身体参数的RestTemplate Post Request的帮助吗? 和Spring RESTtemplate POST但这些答案对我不起作用 我试图通过Spring Android从Instagram API获取访问令牌。 Instagram的文档请求如下: curl \-F ‘client_id=CLIENT-ID’ \ -F ‘client_secret=CLIENT-SECRET’ \ -F ‘grant_type=authorization_code’ \ -F ‘redirect_uri=YOUR-REDIRECT-URI’ \ -F ‘code=CODE’ \https://api.instagram.com/oauth/access_token 这是我的请求访问令牌(在我获得请求令牌成功后): MultiValueMap mvm = new LinkedMultiValueMap(); mvm.add(“client_id”, INSTAGRAM_CILENT_ID); mvm.add(“client_secret”, INSTAGRAM_SECRET); mvm.add(“grant_type”, “authorization_code”); mvm.add(“redirect_uri”, CALLBACKURL); mvm.add(“code”, requestToken); InstagramResult result = restTemplate .postForObject(“https://api.instagram.com/oauth/access_token”, mvm, InstagramResult .class); 结果映射类: public class InstagramLogin { […]

我为什么要使用Spring Android?

这里有人使用Spring Android吗? 如果是这样,为什么你认为它值得呢? 谢谢

无法在Spring 3 REST Webservice中的START_ARRAY标记中反序列化对象的实例

我正在利用Spring提供的这个很酷的东西:Spring RESTWebService(spring的版本是3)。 如果我从浏览器访问URL,我可以看到JSON响应,但是从客户端端点(Android应用程序)iIreceive这个错误消息: Caused by: org.springframework.web.client.ResourceAccessException: I/O error: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1]; nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of MyObject out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@4076e940; line: 1, column: 1] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:466) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:414) at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:234) at com.be.android.locateconsultants.resources.AsyncTaskRESTServiceCaller.doInBackground(AsyncTaskRESTServiceCaller.java:43) at […]

ClassCastException:RestTemplate返回List 而不是List

我正在尝试访问MyModelClass上的getter方法,但我的代码返回List而不是List 。 这是我的代码。 List myModelClass=(List) restTemplate.postForObject(url,mvm,List.class); System.out.println(“Response= ” + myModelClass); 我试图打印响应,我得到了我期待的JSON响应。 但是当我试图运行这段代码时。 System.out.println(“Response= ” + myModelClass.get(0).getMessage()); 它会产生这个错误。 java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.XXX.XXX.MyModelClass 这是一个不匹配。 有人可以帮我摆脱这个错误吗? 谢谢。 MyModelClass public class MyModelClass{ /** * */ @JsonProperty(“id”) public String id; @JsonProperty(“type”) public String type; @JsonProperty(“user”) public String user; @JsonProperty(“message”) public String message; //getters 错误 MyModelClass[] myModelClass= restTemplate.postForObject(url,mvm, […]

jackson JsonParseException:无效的UTF-8中间字节

当jackson引擎尝试解析来自服务器的json响应时,会发生此错误。 我使用Spring Android来串行/反序列化json中的对象。 此问题似乎与默认编码UTF-8有关。 有人知道如何告诉引擎它应该期待与UTF-8不同的东西,如UTF-16吗? HttpHeaders requestHeaders = createSomeHeader(); RestTemplate restTemplate = new RestTemplate(); HttpEntity requestEntity = new HttpEntity(requestHeaders); String url = “someurl” ResponseEntity arrayResponseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, MyObject[].class); 错误日志: Caused by: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Invalid UTF-8 middle byte 0x20 at [Source: org.apache.http.conn.EofSensorInputStream@44d397b0; line: 92, column: 42]; nested exception is org.codehaus.jackson.JsonParseException: Invalid […]