我在我们的代码库上运行了findbugs,它指出还有两个语句仍然需要关闭.在我们运行的代码的这一部分中:
preparedStatement = connection.prepareStatement(query);
Run Code Online (Sandbox Code Playgroud)
对于3个不同的查询,重用prepareStatement.在finally块中,我们关闭资源:
finally{
try{
if (resultSet != null)
resultSet.close();
} catch (Exception e) {
exceptionHandler.ignore(e);
}
try {
if (preparedStatement != null)
preparedStatement.close();
} catch(Exception e) {
exceptionHandler.ignore(e);
}
Run Code Online (Sandbox Code Playgroud)
语句是否应在下一个connection.prepareStatement(query)之前关闭; 或者这个发现者是否谨慎?
我有一个返回 zip 文件的控制器。我想将 zip 文件与预期的 zip 进行比较,但我不确定如何从我的结果中获取文件。这是我到目前为止所拥有的:
public class FileControllerTest extends ControllerTest {
@InjectMocks
private FileController controller;
@Autowired
private WebApplicationContext context;
private MockMvc mvc;
@Before
public void initTests() throws IOException {
MockitoAnnotations.initMocks(this);
mvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void shouldReturnZip() throws Exception {
MvcResult result = mvc
.perform(get(SERVER + FileController.REQUEST_MAPPING + "/zip").accept("application/zip"))
.andExpect(status().isOk()).andExpect(content().contentType("application/zip"))
.andDo(MockMvcResultHandlers.print()).andReturn();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习角度,并有一个示例登录代码.此代码具有一个构造函数,可在调用时清除凭据.我的问题是:何时调用构造函数?是在初始化代码时还是每次调用控制器上的方法时?我可能会把这与我的后端开发框架与DI一起工作的方式混淆,后者在初始化时只运行一次控制器的构造函数.
作为后续问题,我是否需要注销功能或构造函数是否足够好?
这是我目前正在查看的代码:
(function () {
'use strict';
angular
.module('app')
.controller('LoginController', LoginController);
LoginController.$inject = ['$rootScope', '$location', 'AuthenticationService', 'FlashService'];
function LoginController($rootScope, $location, AuthenticationService, FlashService) {
var vm = this;
vm.login = login;
(function initController() {
// reset login status
AuthenticationService.ClearCredentials();
})();
function login() {
vm.dataLoading = true;
var promise = AuthenticationService.Login(vm.username, vm.password)
.then(function(userInfo){
AuthenticationService.SetCredentials(userInfo);
$location.path('/');
}, function(failedReason) {
FlashService.Error(failedReason);
vm.dataLoading = false;
});
};
function logout() {
AuthenticationService.ClearCredentials();
$location.path('/login');
};
}
})();
Run Code Online (Sandbox Code Playgroud)