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

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 11:
* NetBeans IDE 7.1
 
Создадим новый Web проект в NetBeans:
 
<gallery>
Файл:Create_project_1.jpg|Шаг 1. СоздатьNew новыйProject проект-> Web Application
Файл:Create_project_2.jpg|Шаг 2. Даем имя проекту - UserProject
Файл:Create_project_3.jpg|Шаг 3. Устанавливаем сервер для проекта
Файл:Create_project_4.jpg|Шаг 4. Выбираем что проект будет использовать Spring Framework и имя dispatcher для имени контекста
 
Файл:Create_project_6.jpg|Шаг 5. Структура созданного проекта
</gallery>
И еще один проект для бизнес-логики:
 
<gallery>
Файл:Model_lib_2.jpg|Шаг 1. New Project -> Java-> Java Class Library
Файл:Model_lib_3.jpg|Шаг 2. Даем имя проекту - ModelService и добавляем файлы IUserService.java, UserService.java и User.java
Файл:Model_lib_4.jpg|Шаг 3. Правый клик на Libraries в проекте ModelService -> Add Library и выбираем библиотеку JUnit 4.10
Файл:Model_lib_9.jpg|Шаг 4. Правый клик на Libraries в проекте ModelService -> Add JAR/Folder и добавляем spring-context-3.0.6.RELEASE.jar для того чтобы вставить в сервис UserService аннотацию @Service (находится в архиве Spring-а)
Файл:Model_lib_5.jpg|Шаг 5. Создаем тесты для сервиса. Запускаем и собираем в jar командой "Clean and build"
Файл:Create_project_6Model_lib_6.jpg|Шаг 56. Структура созданного проекта ModelService
Файл:Model_lib_7.jpg|Шаг 7. Правый клик на Libraries в проекте UserProject -> и добавляем созданный ModelService.jar
Файл:Model_lib_8.jpg|Шаг 8. Структура созданного проекта UserProject
</gallery>
 
 
В дескрипторе развертывания приложения, web.xml, мы определяем, что все, что в запросе соответствует паттерну *.htm, должно обрабатываться DispatcherServlet из Spring-а.
Также установим страницу по умолчанию в redirect.jsp:
Строка 80 ⟶ 94 :
</beans>
</source>
Посмотрим проект UserProject.
 
'''Веб-слой''' приложения (классы-контроллеры, описывающие КАК и КОГДА приложение взаимодействует с пользователем через веб.).
Строка 177 ⟶ 192 :
}
</source>
 
И дляДля отладки приложения можно создать файл org.app.controller.Main:
 
<source lang="java">
package org.app.controller;
 
import org.app.service.IUserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
 
public class Main {
public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext(new String[] {"/web/WEB-INF/dispatcher-servlet.xml"});
IUserService iuser = (IUserService)context.getBean("userService"); // имя бина должно быть с маленькой буквы
System.out.println("sizecount of users:"+iuser.getAll().size());
}
</source>
 
 
'''Слой представления''' (Описывает ЧТО пользователь увидит при взаимодействии с приложением).
Строка 259 ⟶ 293 :
</html>
</source>
 
Теперь переключимся на проект UserService.
 
'''Сервис-слой''' приложения(Содержит интерфейсы, в которых описано ЧТО ДЕЛАТЬ С ДАННЫМИ или, другими словами, бизнес логика приложения . Также содержит практические реализации этих интерфейсов.).
Строка 267 ⟶ 303 :
 
'''@Transactional''' - Перед исполнением метода помеченного данной аннотацией начинается транзакция, после выполнения метода транзакция коммитится, при выбрасывании RuntimeException откатывается.
 
 
Интерфейс сервиса org.app.service.IUserService
Строка 383 ⟶ 420 :
this.name = name;
}
</source>
 
И для отладки приложения можно создать файл org.app.controller.Main:
 
<source lang="java">
package org.app.controller;
 
import org.app.service.IUserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
 
public class Main {
public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext(new String[] {"/web/WEB-INF/dispatcher-servlet.xml"});
IUserService iuser = (IUserService)context.getBean("userService"); // имя бина должно быть с маленькой буквы
System.out.println("size of users:"+iuser.getAll().size());
}
}
</source>