Что выведет код?
Задача по Spring. @Component и @Service. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. @Component и @Service. Сложность легкая.
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
public class Main301024_2 {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Config3010.class);
Client3010 client = context.getBean(Client3010.class);
client.process();
}
}
@Configuration
@ComponentScan
class Config3010 {}
@Component
class Client3010 {
private final Service3010 service;
@Autowired
public Client3010(Service3010 service) {
this.service = service;
}
public void process() {
service.execute3010();
}
}
@Service
class Service3010 {
public void execute3010() {
System.out.println("Service executed");
}
}
#TasksSpring
Что выведет код?
Задача по Spring. Аннотации @NotNull @Size @Email @Min @Max. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. Аннотации @NotNull @Size @Email @Min @Max. Сложность легкая.
import jakarta.validation.ConstraintViolationException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
public class Main311024_2 {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Config3110.class);
UserService3110 userService = context.getBean(UserService3110.class);
try {
userService.registerUser("Jo", "mai.ru", 15);
} catch (ConstraintViolationException e) {
System.out.println("Validation failed");
}
}
}
@Configuration
class Config3110 {
@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
return new MethodValidationPostProcessor();
}
@Bean
public UserService3110 userService3110() {
return new UserService3110();
}
}
@Component
@Validated
class UserService3110 {
public void registerUser(
@NotNull @Size(min = 3, message = "Name must be at least 3 characters") String name,
@Email(message = "Email should be valid") String email,
@Min(value = 16, message = "Age must be at least 16") int age) {
System.out.println("User registered: " + name + ", " + email + ", " + age);
}
}
#TasksSpring
Что выведет код?
Задача по Spring. Аннотации @Import и @Value Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. Аннотации @Import и @Value Сложность легкая.
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
public class Main011124_2 {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(MainConfig0111.class);
Client0111 client = context.getBean(Client0111.class);
client.printMessage();
}
}
@Configuration
@Import(ServiceConfig0111.class)
class MainConfig0111 {
@Bean
public Client0111 client0111(Service0111 service) {
return new Client0111(service);
}
}
@Configuration
class ServiceConfig0111 {
@Bean
public Service0111 service0111(@Value("${message:Hello, Spring}") String message) {
return new Service0111(message);
}
}
class Client0111 {
private final Service0111 service;
public Client0111(Service0111 service) {
this.service = service;
}
public void printMessage() {
System.out.println(service.message());
}
}
record Service0111(String message) {
}
#TasksSpring
Что выведет код при обращении к URL "/greet/John"?
Задача по Spring. Spring MVC. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. Spring MVC. Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
public class Main041124_2 {
public static void main(String[] args) {
SpringApplication.run(Main041124_2.class, args);
}
}
@Controller
class GreetingController0411 {
@GetMapping("/greet/{name}")
@ResponseBody
public String greetUser(@PathVariable String name, @RequestParam(defaultValue = "Guest") String title) {
return "Hello, " + title + " " + name + "!";
}
}
#TasksSpring
Что выведет код при обращении к URL "/home/welcome"?
Задача по Spring. @Controller,@RequestMapping . Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. @Controller,@RequestMapping . Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
public class Main051124_2 {
public static void main(String[] args) {
SpringApplication.run(Main051124_2.class, args);
}
}
@Controller
@RequestMapping("/home")
class HomeController0511 {
@RequestMapping("/welcome")
@ResponseBody
public String welcome() {
return "Welcome to the home page!";
}
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello from home!";
}
}
#TasksSpring
Что выведет код при обращении к URL "/user/register/John?age=25"?
Задача по Spring @GetMapping, @RequestBody, @ModelAttribute, @RequestParam и @PathVariable. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring @GetMapping, @RequestBody, @ModelAttribute, @RequestParam и @PathVariable. Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class Main071124_2 {
public static void main(String[] args) {
SpringApplication.run(Main071124_2.class, args);
}
}
@Controller
@RequestMapping("/user")
class UserController0711 {
@GetMapping("/register/{name}")
@ResponseBody
public String registerUser(@PathVariable String name, @RequestParam int age, @ModelAttribute("status") String status) {
return "User: " + name + ", Age: " + age + ", Status: " + status;
}
@ModelAttribute("status")
public String status() {
return "Active";
}
}
#TasksSpring
Что выведет код при обращении к URL "/api/greet"?
Задача по Spring ViewResolver @RestControlle. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring ViewResolver @RestControlle. Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@SpringBootApplication
public class Main081124_2 {
public static void main(String[] args) {
SpringApplication.run(Main081124_2.class, args);
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
@RestController
class ApiController0811 {
@GetMapping("/api/greet")
public String greet() {
return "Hello from API!";
}
}
@Controller
class ViewController0811 {
@GetMapping("/view/greet")
public String greetView() {
return "greeting";
}
}
#TasksSpring
Что выведет код при обращении к URL "/hello"?
Задача по Spring. Thymeleaf. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring. Thymeleaf. Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@SpringBootApplication
public class Main111124_2 {
public static void main(String[] args) {
SpringApplication.run(Main111124_2.class, args);
}
}
@Controller
class HelloController1111 {
@GetMapping("/hello")
public String sayHello(Model model) {
model.addAttribute("name", "Spring User");
return "greeting";
}
}
#TasksSpring
Что выведет код при обращении к URL "/test?age=15"?
Задача по Spring @ModelAttribute, @ExceptionHandler. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring @ModelAttribute, @ExceptionHandler. Сложность легкая.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
public class Main131124_2 {
public static void main(String[] args) {
SpringApplication.run(Main131124_2.class, args);
}
}
@Controller
class TestController1311 {
@ModelAttribute("status")
public String status() {
return "Active";
}
@GetMapping("/test")
@ResponseBody
public String testEndpoint(@RequestParam int age, Model model) {
if (age < 18) {
throw new IllegalArgumentException("Age must be 18 or older");
}
return "User status: " + model.getAttribute("status") + ", Age: " + age;
}
@ExceptionHandler(IllegalArgumentException.class)
@ResponseBody
public String handleIllegalArgument(IllegalArgumentException e) {
return "Error: " + e.getMessage();
}
}
#TasksSpring
Что выведет код?
Задача по Spring JDBC, использование JdbcTemplate, создание и выполнение CRUD операций в Spring. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring JDBC, использование JdbcTemplate, создание и выполнение CRUD операций в Spring. Сложность легкая.
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@SpringBootApplication
public class Main151124_2 {
public static void main(String[] args) {
SpringApplication.run(Main151124_2.class, args);
}
@Bean
public CommandLineRunner demo(JdbcTemplate jdbcTemplate) {
return args -> {
jdbcTemplate.execute("CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(255), age INT, PRIMARY KEY (id))");
jdbcTemplate.update("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 30);
jdbcTemplate.update("INSERT INTO users (name, age) VALUES (?, ?)", "Bob", 25);
List<String> names = jdbcTemplate.query("SELECT name FROM users WHERE age > ?", new Object[]{20}, new NameRowMapper());
names.forEach(System.out::println);
};
}
static class NameRowMapper implements RowMapper<String> {
@Override
public String mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getString("name");
}
}
}
#TasksSpring
Что выведет код?
Задача по Spring JDBC, JPQL, @JpaRepository, @Entity, @Table, @Id создание и выполнение CRUD операций в Spring. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по Spring JDBC, JPQL, @JpaRepository, @Entity, @Table, @Id создание и выполнение CRUD операций в Spring. Сложность легкая.
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.util.List;
@SpringBootApplication
public class Main211124_2 {
public static void main(String[] args) {
SpringApplication.run(Main211124_2.class, args);
}
@Bean
public CommandLineRunner demo(UserRepository2111 repository) {
return args -> {
repository.save(new User2111("Alice", 30));
repository.save(new User2111("Bob", 25));
List<User2111> users = repository.findByAgeGreaterThan(20);
users.forEach(user -> System.out.println(user.getName()));
};
}
}
@Entity
@Table(name = "users2111")
class User2111 {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private int age;
// Конструкторы, геттеры и сеттеры
public User2111() {}
public User2111(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
}
@Repository
interface UserRepository2111 extends JpaRepository<User2111, Long> {
List<User2111> findByAgeGreaterThan(int age);
}
#TasksSpring
Что выведет код?
Задача по aннотации @Transactional, аннотациям @Cacheable и @CacheEvict, симуляция кеша в Spring. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по aннотации @Transactional, аннотациям @Cacheable и @CacheEvict, симуляция кеша в Spring. Сложность легкая.
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
@SpringBootApplication
@EnableCaching
public class Task291124_2 {
public static void main(String[] args) {
SpringApplication.run(Task291124_2.class, args);
}
@Bean
public CommandLineRunner demo(UserService2911 userService) {
return args -> {
System.out.println(userService.getUserById(1L));
System.out.println(userService.getUserById(1L));
userService.clearCache();
System.out.println(userService.getUserById(1L));
};
}
}
@Service
class UserService2911 {
private final Map<Long, String> database = new HashMap<>();
public UserService2911() {
database.put(1L, "Alice");
}
@Cacheable("users")
public String getUserById(Long id) {
System.out.println("Fetching user from database...");
return database.get(id);
}
@CacheEvict(value = "users", allEntries = true)
public void clearCache() {
System.out.println("Cache cleared");
}
@Transactional
public void updateUser(Long id, String newName) {
database.put(id, newName);
if (newName == null) {
throw new IllegalArgumentException("Name cannot be null");
}
}
}
#TasksSpring
Что выведет код?
Задача по основам AOP в Spring, понятиям Joinpoint, Pointcut, Advice, аннотациям @Before, @After, @Around. Сложность легкая.
Подробный разбор через 30 минут!🫡
#TasksSpring
Задача по основам AOP в Spring, понятиям Joinpoint, Pointcut, Advice, аннотациям @Before, @After, @Around. Сложность легкая.
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Component;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.ProceedingJoinPoint;
@SpringBootApplication
@EnableAspectJAutoProxy
public class Task041224_2 {
public static void main(String[] args) {
SpringApplication.run(Task041224_2.class, args);
}
@Bean
public CommandLineRunner demo(Service0412 service) {
return args -> {
service.performTask();
};
}
}
@Component
class Service0412 {
public void performTask() {
System.out.println("Executing performTask...");
}
}
@Aspect
@Component
class LoggingAspect0412 {
@Before("execution(* Service0412.performTask(..))")
public void logBefore() {
System.out.println("Before advice");
}
@After("execution(* Service0412.performTask(..))")
public void logAfter() {
System.out.println("After advice");
}
@Around("execution(* Service0412.performTask(..))")
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("Around: Before");
Object result = joinPoint.proceed();
System.out.println("Around: After");
return result;
}
}
#TasksSpring