-
Весна 1.x:
- Инверсия управления (IoC): основная концепция Spring, позволяющая создавать объекты и управлять ими с помощью платформы.
- Аспектно-ориентированное программирование (АОП): обеспечение модульности сквозных задач в приложениях.
Пример:
// IoC example public class MyController { private MyService myService; public MyController(MyService myService) { this.myService = myService; } } // AOP example @Aspect public class LoggingAspect { @Before("execution(* com.example.*.*(..))") public void logBefore(JoinPoint joinPoint) { System.out.println("Logging before method execution: " + joinPoint.getSignature().getName()); } }
-
Весна 2.x:
- Конфигурация на основе XML: введение в конфигурацию на основе XML для определения компонентов и их зависимостей.
- Spring MVC: веб-фреймворк для создания веб-приложений с использованием шаблона Модель-Представление-Контроллер (MVC).
Пример:
<!-- XML-based bean configuration --> <beans> <bean id="myService" class="com.example.MyServiceImpl"/> <bean id="myController" class="com.example.MyController"> <constructor-arg ref="myService"/> </bean> </beans> // Spring MVC example @Controller public class MyController { @RequestMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hello, Spring MVC!"); return "hello-page"; } }
-
Весна 3.x:
- Конфигурация на основе аннотаций: добавлены такие аннотации, как
@Component
,@Autowired
и@Configuration
для конфигурации компонентов. - Язык выражений Spring (SpEL): мощный язык выражений для запросов и управления графами объектов.
Пример:
// Annotation-based configuration @Component public class MyService { // Autowiring dependencies @Autowired private MyRepository myRepository; } // SpEL example @Value("#{systemProperties['java.home']}") private String javaHome;
- Конфигурация на основе аннотаций: добавлены такие аннотации, как
-
Весна 4.x:
- Поддержка WebSocket: добавлена поддержка двунаправленной связи в реальном времени между клиентами и серверами.
- Spring Boot: платформа, основанная на соглашениях и конфигурациях, для быстрого создания приложений на основе Spring.
Пример:
// WebSocket configuration @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myWebSocketHandler(), "/my-websocket"); } } // Spring Boot example @SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } }
Среда Spring постоянно развивалась и добавляла новые функции в разных версиях. В этой статье представлен обзор основных функций Spring 1.x, 2.x, 3.x и 4.x, включая инверсию управления, аспектно-ориентированное программирование, конфигурацию на основе XML и аннотаций, Spring MVC, язык выражений Spring., поддержка WebSocket и Spring Boot. Будучи в курсе последних версий Spring, разработчики могут использовать эти мощные функции для создания современных и масштабируемых приложений Java.