Фрэймворк Spring очень популярен при разработке Java приложений. И в какой то момент в вашем проекте может появиться необходимость его использовать. В этой статье я хочу объяснить как интегрировать Spring в ADF. Начнём
По умолчанию Jdev не даёт возможности работы со Spring. Сначала нужно установить extension: Spring & Oracle Weblogic Sca
После установки расширения для Spring-а, нужно добавить в проект его библиотеку (нажимаем правой кнопкой по проекту, выбираем Project Properties, а там выбираем Libraries and Classpath)
В принципе проект готов к работе со Spring-ом. Осталось настроить faces-config.xml (для разрешения Spring-у использовать EL выражения ) и web.xml (для инициализации Spring контейнера при загрузке приложения)
faces-config.xml
web.xml
3. Создайте jspx страницу и добавьте outputText :
<af:outputText value="Текст из Spring:#{viewScope.AdfBean.value}" id="ot1"/>
4. Создайте managed bean
где метод getBean() получает доступ к Spring-овскому бину.
Готово. Если запустить приложение, то выведется следующее окно
По умолчанию Jdev не даёт возможности работы со Spring. Сначала нужно установить extension: Spring & Oracle Weblogic Sca
После установки расширения для Spring-а, нужно добавить в проект его библиотеку (нажимаем правой кнопкой по проекту, выбираем Project Properties, а там выбираем Libraries and Classpath)
faces-config.xml
<application> ... <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver> </application>
|
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/hello-beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
где /WEB-INF/hello-beans.xml путь к конфигурационному файлу |
Что бы продемонстрировать работу Spring в ADF создадим простое приложение, в котором будет выводиться "Hello world" с помощью Spring-a.
1. Создайте bean(java класс) с методом getMessage :
1. Создайте bean(java класс) с методом getMessage :
package view;
public class Hello { public String getMessage(String quote) { return "Hello "+quote; } } |
2. Создайте конфигурационный файл, в котором укажите путь к бину.
<?xml version="1.0" encoding="windows-1251" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <bean id="helloBean" class="view.Hello"> </bean> </beans> |
<af:outputText value="Текст из Spring:#{viewScope.AdfBean.value}" id="ot1"/>
4. Создайте managed bean
package view;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class AdfBean {
private ApplicationContext ctx;
public AdfBean() {
}
public String getValue()
{
Hello hello = (Hello) getBean("helloBean");
return hello.getMessage("World");
}
protected Object getBean(String name){
if (ctx == null) {
try {
return WebApplicationContextUtils.getWebApplicationContext(
(ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getBean(name); } catch (BeansException e) { System.out.println("Beans Exception" + e); } } try { return ctx.getBean(name); } catch (BeansException e) { System.out.println("Beans Exception" + e); } return null; } } |
где метод getBean() получает доступ к Spring-овскому бину.
Готово. Если запустить приложение, то выведется следующее окно
Более детально интеграция Spring-а с web фрэймворками описана по следующей ссылке:
http://docs.spring.io/autorepo/docs/spring/3.2.x/spring-framework-reference/html/web-integration.html
http://docs.spring.io/autorepo/docs/spring/3.2.x/spring-framework-reference/html/web-integration.html
Комментариев нет:
Отправить комментарий