В этом уроке пойдет речь о Spring конфигурациях, а именно о том как их хранить в виде классов.
Spring 3 дает нам возможность создавать конфигурации в виде Java классов, но он также не отменяет использование классических XML конфигураций.
Шаг 0
Создадим простой конфигурационный файл xml, подробней можно посмотреть тут:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloBean" class="com.devcolibri.hello.impl.HelloWorldImpl"> </beans>
И создадим равносильный этому конфигурационному xml файлу, JavaConfig:
package com.devcolibri.config; import com.devcolibri.hello.impl.HelloWorldImpl; import com.devcolibri.hello.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class BeenConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); } }
Что в первом, что во втором случае мы получим одинаковые конфигурации.
Шаг 1
Создайте новый Java Project и в нем создайте следующую структуру пакетов и файлов:
Как вы видите по картинке выше у нас нет конфигурационных xml файлов.
Шаг 2
Теперь добавим зависимости Spring в pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.devcolibri</groupId> <artifactId>SpringJavaConfig</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>SpringJavaConfig</name> <properties> <spring.version>3.2.0.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </project>
Мы добавили две самые основные зависимости которые требуется для нашего примера.
Шаг 3
Теперь создадим Been в src/main/java/com/devcolibri/hello/HelloWorld.java:
package com.devcolibri.hello; public interface HelloWorld { void sayHelloWorld(String st); }
Обратите внимание, что это интерфейс!
Шаг 4
Создаем реализацию данного been-а, который мы создали выше в пакете src/main/java/com/devcolibri/hello/impl/HelloWorldImpl.java:
package com.devcolibri.hello.impl; import com.devcolibri.hello.HelloWorld; public class HelloWorldImpl implements HelloWorld { @Override public void sayHelloWorld(String st) { System.out.println(st); } }
Наследуемся от been-а HelloWorld.java – это наш интерфейс.
Шаг 5
Теперь создаем конфигурационный Java файл в src/main/java/com/devcolibri/config/BeenConfig.java:
package com.devcolibri.config; import com.devcolibri.hello.impl.HelloWorldImpl; import com.devcolibri.hello.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class BeenConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); } }
В строке 8 – вы увидите аннотацию @Configuration – она говорит Spring-у о том, что этот класс будет хранить конфигурации.
В строке 11 – аннотация @Bean(name=’helloBean’) – она указывает на реализацию Bean-а который в качестве параметра метода, а атрибут данной аннотации name=’helloBean’ говорит о том, что получить bean можно по этому имени.
Шаг 6
Создаем EnterPint (точка входа в программу) тут src/main/java/com/devcolibri/core/Main.java:
package com.devcolibri.core; import com.devcolibri.config.BeenConfig; import com.devcolibri.hello.HelloWorld; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(BeenConfig.class); HelloWorld obj = (HelloWorld) context.getBean("helloBean"); obj.sayHelloWorld("Hello World and DevColibri.com!"); } }
В строке 12 мы указываем какие конфигурации потребуются, определяем это по их содержимому.
В строке 13 мы получаем bean по его имени, что мы указали в качестве параметра в аннотации @Bean(name=’helloBean’)
Структура проекта
Шаг 7
Запускаем нашу программу.
В результате выполнения нашей программы мы получим следующий текст в консоли:
Hello World and DevColibri.com!
p.s. Понравился урок? Если хочешь получать подобные уроки на email то укажи его ниже в форме.
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
8 комментариев к статье "Как вынести Spring конфигурации в Java классы?"