Questions tagged «spring»

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

14
为什么Spring的ApplicationContext.getBean被认为是不好的?
我问了一个一般性的Spring问题:自动播发Spring Bean,并让多个人回答说ApplicationContext.getBean()应尽可能避免调用Spring 。这是为什么? 我还应该如何访问配置了Spring创建的Bean? 我在非Web应用程序中使用Spring,并计划按LiorH的描述访问共享ApplicationContext对象。 修正案 我接受以下答案,但这是Martin Fowler的另一种选择,他讨论了依赖注入与使用Service Locator(本质上与调用wraped相同ApplicationContext.getBean())的优点。 Fowler在某种程度上说:“ 使用服务定位器,应用程序类通过向定位器的消息显式地请求[服务]。使用注入时,没有显式请求,服务将出现在应用程序类中-因此控制权反转。控制反转是框架的一个共同特征,但这是有代价的。当您尝试进行调试时,它往往难以理解并导致问题。因此,总的来说,我希望避免这种情况。除非我需要它。这并不是说这是一件坏事,只是我认为它需要证明自己比更直接的选择更合理。 ”
270 java  spring 

12
Spring RestTemplate GET与参数
我必须打一个REST电话,其中包括自定义标头和查询参数。我只设置HttpEntity标题(没有正文),并且使用RestTemplate.exchange()如下方法: HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); Map<String, String> params = new HashMap<String, String>(); params.put("msisdn", msisdn); params.put("email", email); params.put("clientVersion", clientVersion); params.put("clientType", clientType); params.put("issuerName", issuerName); params.put("applicationName", applicationName); HttpEntity entity = new HttpEntity(headers); HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class, params); 这在客户端失败,dispatcher servlet因为无法将请求解析为处理程序。调试完成后,似乎没有发送请求参数。 当我POST使用请求正文和无查询参数进行交换时,它工作正常。 有人有什么想法吗?
266 java  spring  rest 

10
类型安全性:未经检查的演员表
在我的spring应用程序上下文文件中,我有类似以下内容: <util:map id="someMap" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.lang.String"> <entry key="some_key" value="some value" /> <entry key="some_key_2" value="some value" /> </util:map> 在java类中,实现如下所示: private Map<String, String> someMap = new HashMap<String, String>(); someMap = (HashMap<String, String>)getApplicationContext().getBean("someMap"); 在Eclipse中,我看到一条警告: 类型安全性:未经检查的从Object到HashMap的强制转换 我做错什么了?我该如何解决该问题?

4
通过Spring的RESTful身份验证
问题: 我们有一个基于Spring MVC的RESTful API,其中包含敏感信息。API应该是安全的,但是不希望随每个请求一起发送用户凭证(用户/密码组合)。根据REST准则(和内部业务要求),服务器必须保持无状态。该API将由另一台服务器以mashup方式使用。 要求: 客户端.../authenticate使用凭证向(不受保护的URL)发出请求;服务器返回一个安全令牌,该令牌包含足以使服务器验证未来请求并保持无状态的信息。这可能包含与Spring Security的Remember-Me Token相同的信息。 客户端向各种(受保护的)URL发出后续请求,将先前获得的令牌附加为查询参数(或者,不太希望是HTTP请求标头)。 不能期望客户端存储cookie。 由于我们已经使用过Spring,因此该解决方案应该利用Spring Security。 我们一直在努力地解决这个问题,所以希望外面有人已经解决了这个问题。 在上述情况下,您将如何解决这一特殊需求?



16
从属性文件中读取列表并使用Spring注释@Value加载
我想在.properties文件中有一个值列表,即: my.list.of.strings=ABC,CDE,EFG 并将其直接加载到我的课程中,即: @Value("${my.list.of.strings}") private List<String> myList; 据我了解,这样做的另一种方法是将其保存在spring config文件中,并将其作为bean引用加载(如果我错了,请更正我),即 <bean name="list"> <list> <value>ABC</value> <value>CDE</value> <value>EFG</value> </list> </bean> 但是有什么办法吗?使用.properties文件?ps:如果可能的话,我希望没有任何自定义代码。

11
如何使用MockMvc检查响应主体中的字符串
我有简单的集成测试 @Test public void shouldReturnErrorMessageToAdminWhenCreatingUserWithUsedUserName() throws Exception { mockMvc.perform(post("/api/users").header("Authorization", base64ForTestUser).contentType(MediaType.APPLICATION_JSON) .content("{\"userName\":\"testUserDetails\",\"firstName\":\"xxx\",\"lastName\":\"xxx\",\"password\":\"xxx\"}")) .andDo(print()) .andExpect(status().isBadRequest()) .andExpect(?); } 在最后一行中,我想将响应正文中收到的字符串与预期字符串进行比较 作为回应,我得到: MockHttpServletResponse: Status = 400 Error message = null Headers = {Content-Type=[application/json]} Content type = application/json Body = "Username already taken" Forwarded URL = null Redirected URL = null 使用content(),body()尝试了一些技巧,但没有任何效果。

6
在单元测试期间填充Spring @Value
我正在尝试为程序中用于验证表单的简单bean编写单元测试。Bean带有注释,@Component并具有使用初始化的类变量 @Value("${this.property.value}") private String thisProperty; 我想为此类中的验证方法编写单元测试,但是,如果可能的话,我希望在不利用属性文件的情况下这样做。我这样做的原因是,如果我从属性文件中提取的值发生更改,我希望这不会影响我的测试用例。我的测试用例正在测试验证值的代码,而不是值本身。 有没有一种方法可以在测试类中使用Java代码来初始化Java类,并在该类中填充Spring @Value属性,然后使用该属性进行测试? 我没有找到这个如何,这似乎是接近,但依然采用的是属性文件。我宁愿全部都是Java代码。

6
Bean初始化完成后如何调用方法?
我有一个用例,需要在ApplicationContext加载一次时在Bean中一次调用一个(非静态)方法。如果我为此使用MethodInvokingFactoryBean可以吗?还是我们有更好的解决方案? 附带说明,我使用ConfigContextLoaderListener在Web应用程序中加载应用程序上下文。并且想要,如果实例化了bean'A',则只需调用一次methodA()。 如何做到这一点呢?

20
BeanFactory与ApplicationContext
我对Spring Framework还是很陌生,我一直在使用它,并将一些示例应用程序放在一起,以评估Spring MVC以便在即将到来的公司项目中使用。到目前为止,我非常喜欢我在Spring MVC中看到的内容,它似乎非常易于使用,并鼓励您编写对单元测试非常友好的类。 作为练习,我正在为我的一个样本/测试项目编写一种主要方法。我不清楚的一件事是BeanFactory和之间的确切区别ApplicationContext-在哪种情况下适合使用? 我知道可以ApplicationContext扩展BeanFactory,但是如果我只是编写一个简单的main方法,是否需要ApplicationContext提供的额外功能?究竟提供什么样的额外功能ApplicationContext? 除了回答“我应该在main()方法中使用哪个”之外,在这种情况下应该使用哪种实现还有任何标准或准则?是否应该将main()方法编写为依赖于XML格式的bean /应用程序配置-这是一个安全的假设,还是我将用户锁定在特定的位置? 并且此答案在Web环境中是否会更改-如果我的任何一个类需要了解Spring,是否更有可能需要它们ApplicationContext? 谢谢你的帮助。我知道参考手册中可能会回答很多这样的问题,但是我很难找到这两个接口以及每个接口的优缺点的清晰细目,而没有用细齿梳子通读手册。

12
Spring MVC和Spring Boot之间的区别
我刚刚开始学习Spring。在下一步中,我想开发更大的Web应用程序。 现在我想知道应该从Spring Boot还是Spring MVC开始。我已经读过一些东西,但是令人困惑,因为两者看起来很相似。 那么两者之间有什么区别?

4
Spring Security中角色和GrantedAuthority之间的区别
Spring Security中有一些概念和实现,例如GrantedAuthority用于获得授权来授权/控制访问权限的接口。 我希望对允许的操作(例如createSubUsers或deleteAccounts)进行操作,这些操作将允许管理员(具有role ROLE_ADMIN)使用。 我在网上看到的教程/演示让我感到困惑。我尝试将我阅读的内容联系起来,但我认为我们可以将两者互换。 我看到正在hasRole消耗GrantedAuthority字符串吗?我肯定在理解上做错了。Spring Security中的这些概念是什么? 如何将用户的角色与角色的权限分开存储? 我还查看org.springframework.security.core.userdetails.UserDetails了身份验证提供程序引用的DAO中使用的接口,该接口消耗了User(请注意最后的GrantedAuthority): public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) 还是有其他方法可以区分其他两个?还是不受支持,我们必须自己做?

9
Spring @Autowired用法
在Spring会连接的类中使用@Autowired的优缺点是什么? 只是为了澄清一下,我是在专门讨论@Autowired注释,而不是XML的自动装配。 我可能只是不了解它,但是对我来说,这几乎像是一种反模式-您的类开始意识到它们与DI框架相关联,而不仅仅是POJO。也许我是一个受惩罚的but嘴,但我喜欢为bean使用外部XML配置,并且我喜欢进行显式的布线,因此我确切知道在哪里布线。
218 java  spring  autowired 

15
获取Spring应用程序上下文
有没有办法在Spring应用程序中静态/全局地请求ApplicationContext的副本? 假设主类启动并初始化了应用程序上下文,它是否需要通过调用堆栈将其向下传递给需要它的任何类,还是有一种方法可以让一个类请求先前创建的上下文?(我认为必须是单身人士?)

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.