Spring Framework: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
Строка 36:
Интерфейс сервиса org.app.service.IUserService
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 49:
}
</syntaxhighlight>
</source>
 
... и его реализация
 
<sourcesyntaxhighlight lang="java">
 
package org.app.service;
Строка 111:
}
}
</syntaxhighlight>
</source>
 
'''Доменный слой''' (Здесь находятся POJO-классы, такие как User - это то, ЧЕМ приложение оперирует в бизнес логике).
Сущность пользователя с которой мы работаем - User.java:
 
<sourcesyntaxhighlight lang="java">
package org.app.domain;
 
Строка 148:
}
}
</syntaxhighlight>
</source>
 
== Создание проекта UserProject ==
Строка 167:
В дескрипторе развертывания приложения, ''web.xml'', мы определяем, что все, что в запросе соответствует паттерну *.htm, должно обрабатываться DispatcherServlet из Spring-а.
Также установим страницу по умолчанию в redirect.jsp:
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
Строка 197:
</welcome-file-list>
</web-app>
</syntaxhighlight>
</source>
 
Файл ''applicationContext.xml'' оставим как есть. Потом туда можно будет добавлять настройки для Hibernate, JPA и т.д.
Строка 205:
<context:component-scan base-package="org.app" /> - указывает Spring где в CLASSPATH нужно искать бины контроллеров и сервисов(которые помечены аннотациями @Controller и @Service).
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
Строка 226:
p:suffix=".jsp" />
</beans>
</syntaxhighlight>
</source>
 
'''Веб-слой''' приложения (классы-контроллеры, описывающие КАК и КОГДА приложение взаимодействует с пользователем через веб.). Добавим в проект контроллер UserController.java
Строка 232:
[[Spring_Framework_Guide#Аннотации| Аннотации]]
 
<sourcesyntaxhighlight lang="java">
package org.app.controller;
 
Строка 308:
}
</syntaxhighlight>
</source>
 
Для проверки работы приложения можно создать файл org.app.controller.Main:
 
<sourcesyntaxhighlight lang="java">
package org.app.controller;
 
Строка 326:
}
}
</syntaxhighlight>
</source>
 
 
Строка 333:
 
redirect.jsp
<sourcesyntaxhighlight lang="java">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<% response.sendRedirect("index.htm"); %>
</syntaxhighlight>
</source>
 
index.jsp
<sourcesyntaxhighlight lang="java">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
Строка 360:
</body>
</html>
</syntaxhighlight>
</source>
 
usercreate.jsp
<sourcesyntaxhighlight lang="java">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
Строка 384:
</html>
 
</syntaxhighlight>
</source>
 
userupdate.jsp
 
<sourcesyntaxhighlight lang="java">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
Строка 410:
</body>
</html>
</syntaxhighlight>
</source>
 
Это все. Можно запускать проект и смотреть что получилось.
Строка 432:
Создаем базу данных organization и соединение в NetBeans.
 
<sourcesyntaxhighlight lang="sql">
use organization;
 
Строка 489:
INSERT INTO language_user (user_id, language_id) VALUES (5,3);
 
</syntaxhighlight>
</source>
 
== Создание проекта OrganizationProject ==
Строка 509:
Файл ''web.xml'':
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
Строка 539:
</web-app>
 
</syntaxhighlight>
</source>
 
В файле ''applicationContext.xml'' определим бин messageSource с помощью которого будем использовать в валидаторе локализованные сообщения.
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
Строка 559:
</bean>
</beans>
</syntaxhighlight>
</source>
 
Файл ''dispatcher-servlet.xml'':
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
Строка 586:
</beans>
 
</syntaxhighlight>
</source>
 
'''Веб слой приложения'''.
Строка 592:
Файл org.app.controller.UsersController:
 
<sourcesyntaxhighlight lang="java">
package org.app.controller;
 
Строка 663:
}
 
</syntaxhighlight>
</source>
 
Файл org.app.controller.GroupController:
 
<sourcesyntaxhighlight lang="java">
 
package org.app.controller;
Строка 718:
}
 
</syntaxhighlight>
</source>
 
Файл org.app.controller.Main для проверки работы:
 
<sourcesyntaxhighlight lang="java">
package org.app.controller;
 
Строка 739:
}
 
</syntaxhighlight>
</source>
 
Файл org.app.utils.GroupValidator:
 
<sourcesyntaxhighlight lang="java">
package org.app.utils;
 
Строка 765:
}
}
</syntaxhighlight>
</source>
 
Файл org.app.config.UserSettings для сохранения информации пользователя:
 
<sourcesyntaxhighlight lang="java">
package org.app.config;
 
Строка 823:
}
}
</syntaxhighlight>
</source>
 
'''Слой представления приложения'''.
Строка 829:
Чтобы в каждом файле не использовать одни и те же строки воспользуемся файлом include.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
</syntaxhighlight>
</source>
 
Файл user/list.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@ include file="../include.jsp" %>
<html>
Строка 913:
</html>
 
</syntaxhighlight>
</source>
 
Файл group/add.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@ include file="../include.jsp" %>
<html>
Строка 943:
</html>
 
</syntaxhighlight>
</source>
 
Файл group/list.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@ include file="../include.jsp" %>
<html>
Строка 971:
</html>
 
</syntaxhighlight>
</source>
 
Файл ''logback.xml'' для логгирования с использованием SLF4J и его реализацией Logback:
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
Строка 997:
</root>
</configuration>
</syntaxhighlight>
</source>
 
Файл ''messages.properties'':
 
<sourcesyntaxhighlight lang="text">
title.required = Title is required
</syntaxhighlight>
</source>
 
== Создание проекта OrgService ==
Строка 1032:
HibernateUtil:
 
<sourcesyntaxhighlight lang="java">
package org.utils;
 
Строка 1064:
}
}
</syntaxhighlight>
</source>
 
Файл org.app.service.IUserService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1081:
void deleteEntity(Integer id);
}
</syntaxhighlight>
</source>
 
Файл org.app.service.IGroupsService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1098:
void deleteEntity(Integer id);
}
</syntaxhighlight>
</source>
 
Файл org.app.service.IPositionService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1111:
List<Positions> getAll();
}
</syntaxhighlight>
</source>
 
Файл org.app.service.UsersService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1197:
}
}
</syntaxhighlight>
</source>
 
Файл org.app.service.GroupsService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1248:
}
}
</syntaxhighlight>
</source>
 
Файл org.app.service.PositionService:
 
<sourcesyntaxhighlight lang="java">
package org.app.service;
 
Строка 1285:
}
</syntaxhighlight>
</source>
 
Файл org.app.domain.entities.Users:
 
<sourcesyntaxhighlight lang="java">
package org.app.domain.entities;
 
Строка 1337:
}
}
</syntaxhighlight>
</source>
 
Файл org.app.domain.entities.Groups:
 
<sourcesyntaxhighlight lang="java">
package org.app.domain.entities;
 
Строка 1371:
}
}
</syntaxhighlight>
</source>
 
== Настройки Hibernate ==
Строка 1377:
Файл hibernate.cfg.xml:
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
Строка 1394:
</hibernate-configuration>
 
</syntaxhighlight>
</source>
 
Файл hibernate.reveng.xml:
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
Строка 1409:
</hibernate-reverse-engineering>
 
</syntaxhighlight>
</source>
 
Это все. Можно запускать проект и смотреть что получилось.
Строка 1442:
Файл ''dispatcher-servlet.xml'':
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
Строка 1486:
p:suffix=".jsp" />
</beans>
</syntaxhighlight>
</source>
 
Файл ''web.xml'':
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
Строка 1516:
</session-config>
</web-app>
</syntaxhighlight>
</source>
 
Файл app.controller.IndexController:
 
<sourcesyntaxhighlight lang="java">
package app.controller;
 
Строка 1577:
}
}
</syntaxhighlight>
</source>
 
Файл app.controller.UserObject:
 
<sourcesyntaxhighlight lang="java">
package app.controller;
 
Строка 1615:
}
}
</syntaxhighlight>
</source>
 
 
Файл jsp/index.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
Строка 1635:
</body>
</html>
</syntaxhighlight>
</source>
 
Файл jsp/help.jsp:
 
<sourcesyntaxhighlight lang="xml">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
Строка 1655:
</html>
 
</syntaxhighlight>
</source>
 
Компилируем проект и запускаем.