Te comparto algunos fragmentos de código que te serán útiles para tus entrevistas técnicas en las que te pregunten como hacer algo con Spring framework.
Importancia de Spring en las entrevistas de posiciones de desarrollador Java
Spring es un marco de trabajo, y como tal proveyó una nueva manera de trabajar las aplicaciones empresariales desde su origen. Al ser independiente de Oracle su proceso de toma de decisiones para el desarrollo a futuro es más rápido, lo que le ha permitido adaptarse a los cambios de la industria y ganar una enorme aceptación.
Muchas veces como parte de un proceso con expectativas irreales algunos entrevistadores esperan que los aplicantes nos sepamos de memoria como hacer las tareas más básicas, incluyendo los tipos de retorno, anotaciones, parámetros e incluso como realizar las importaciones correctas como si no contáramos con herramientas modernas que nos provean el auto-completamiento ni verificaciones. Es por ello que yo te propongo que tengas a la mano tus snippets o fragmentos de código durante tu entrevista técnica. Te compartiré los míos para cada tema esperando que te sirvan de inspiración para crear los tuyos propios.
Beneficios de usar fragmentos de código
Estos fragmentos de código no solamente te serán de utilidad al momento de hacer entrevistas, también en el día a día te ayudarán en caso de que tengas que depurar o crear desde cero alguna funcionalidad, por ejemplo implementar un servicio REST. Otro truco que podrías derivar de esto es usar plantillas de autocompletado en tu IDE con estos fragmentos de código, seguramente ya los conoces, es como cuando escribes sout o sysout oprimes la tecla tab y se genera System.out.println, aquí sería lo mismo, podrías escribir por ejemplo spring-rest, oprimir la tecla tab y que te genere el boilerplate para un nuevo controlador rest que use spring.
Servicios REST
Los servicios REST son una de las funcionalidades más comunes que realizan los desarrolladores Java que usan Spring framework y a comparación de sus contrapartes en otros lenguajes el uso de anotaciones resulta un elemento clave para simplificar el desarrollo de microservicios.
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestParam;
@RestController // Indicates that this is a REST controller
@RequestMapping("/api/users") // Base URL path for the controller
public class UserController {
@Autowired
private UserService userService; // Inject the UserService bean
@GetMapping("/{id}") // Handles GET requests with URL path /api/users/{id}
public User getUserById(@PathVariable("id") Long id) {
return userService.getUserById(id); // Call the UserService method
}
@PostMapping // Handles POST requests with URL path /api/users
public User createUser(@RequestBody User user) {
return userService.createUser(user); // Call the UserService method
}
@PutMapping("/{id}") // Handles PUT requests with URL path /api/users/{id}
public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
user.setId(id); // Set the user ID from the URL path variable
return userService.updateUser(user); // Call the UserService method
}
@DeleteMapping("/{id}") // Handles DELETE requests with URL path /api/users/{id}
public void deleteUser(@PathVariable("id") Long id) {
userService.deleteUser(id); // Call the UserService method
}
@ExceptionHandler(UserNotFoundException.class) // Handles UserNotFoundExceptions thrown by the controller methods
@ResponseStatus(HttpStatus.NOT_FOUND) // Returns a 404 Not Found HTTP status code
public void handleUserNotFoundException() {
// Handle the exception here
}
@CrossOrigin(origins = "http://localhost:4200") // Allows cross-origin requests from the specified origin
@GetMapping("/search") // Handles GET requests with URL path /api/users/search
public List<User> searchUsers(@RequestParam("q") String query) {
return userService.searchUsers(query); // Call the UserService method
}
// Other methods and annotations as needed
}
articulo en proceso…