Статьи

Веб-проект Maven Kickstarter с базой данных Spring, Hibernate, Akka, Twitter Bootstrap, Apache Tiles и jQuery

Я рад загрузить свой второй проект в GitHub, чтобы помочь людям как можно быстрее начать разработку Java Web App. Я делюсь этим кодом с Apache License 2.0. Вот URL для того же:

https://github.com/ykameshrao/spring-hibernate-springdata-springmvc-maven-project-framework

Проект состоит из следующих частей:

1) Commons-Deps : Зависимости, объявленные в виде одного файла pom для легкого управления зависимостями проекта. Пользователь сам выбирает, продолжать ли он в том же духе или использовать собственный метод управления зависимостями в Maven Pom.

2) Commons : Многие общие фрагменты кода предоставляются в составе модуля jar commons, чтобы помочь отправлять почту с использованием gmail, java mail, кодировки utf8, менеджеров кеша JCS, менеджеров сеансов, случайной строки и т. Д.

3) Каркас : эта часть базы кода включает JPA и объекты данных Spring, JPA и репозитории данных Spring, сервисы, которые построены с использованием Java Generics, чтобы помочь обеспечить действия CRUD над этими объектами, когда пользователи создают свои собственные доменные объекты, репозитории и услуги, расширяющие предоставляемые здесь. Он также содержит API и контроллеры веб-приложений, которые снова предоставляют базовые функциональные возможности для людей, заинтересованных в создании собственных контроллеров Spring MVC с их использованием. Также здесь содержатся валидаторы, исключения, обработчики исключений на основе AOP.

4) Ваш собственный код веб-приложения : эта часть кода предоставляет загруженный веб-проект с API и веб-интерфейсом, используя лучшие практики, которые я выбрал за время, чтобы делать что-то с использованием сторонних фреймворков, библиотек, которые я выбрал здесь. Части API настроены для приема и генерации как XML, так и JSON форматов запросов и ответов. Здесь Akka также настроен для представления метода, с помощью которого он может использоваться для разгрузки действий с ваших контроллеров Spring MVC (Servlets). Здесь он запрограммирован на разгрузку задачи отправки писем.

Это оболочка, предназначенная для начала создания веб-приложений на базе Spring со слоем Hibernate ORM или NoSQL и Spring MVC на основе Spring Data ORM на языке программирования Java. Цель этого проекта — помочь вам быстро начать разработку веб-приложений на Java с помощью широко используемой и протестированной инфраструктуры веб-разработки на Java.

Этот проект предоставляет образцы объектов гибернации, объектов данных Spring, актеров akka для разгрузки отправки почты, таких как задания, модели, репозитории, сервисы и классы контроллеров. Есть также много классов уровня инфраструктуры, которые помогут обработать исключения и ошибки в проекте, который вы можете начать разрабатывать, используя это. Пользовательский интерфейс для простого веб-проекта по умолчанию, встроенного в эту среду, создается с использованием Twiiter Bootstrap, Apache Tiles, jQuery, jQuery Validation, JSP.

Я могу изо всех сил стараться представить здесь как можно больше подробностей, но лучший способ понять все, что предоставляется, — это прочитать код. Поэтому я также предоставил пример проекта веб-приложения с функциональностью для регистрации и входа в систему пользователя. Весь код представлен в структуре пакета, которая может быть переименована в соответствии с вашим собственным выбором и требованиями. Наслаждайтесь!

Конфигурации config / props / mail.properties

1
2
3
4
5
6
7
8
9
mail.transport.protocol=smtps
mail.host=smtp.gmail.com
mail.user=
mail.pass=
mail.port=465
mail.starttls=true
mail.auth=true
mail.debug=true
mail.fromAddress=

конфиг / реквизит / database.properties

1
2
3
4
5
6
7
8
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/yourwebprojectdb
jdbc.username=
jdbc.password=
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=600
hibernate.c3p0.max_statements=50

SRC / основные / ресурсы / плитка / templates.web.xml

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<i>
<?xml version=”1.0” encoding=”UTF-8” ?>
<!DOCTYPE tiles-definitions PUBLIC
”-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN”
  
<tiles-definitions>
 <definition name=”base” template=”/WEB-INF/views/layout/web.jsp”>
  <put-attribute name=”title” value=”” />
  <put-attribute name=”header” value=”/WEB-INF/views/common/header.web.jsp” />
  <put-attribute name=”message” value=”/WEB-INF/views/common/message.web.jsp” />
  <put-attribute name=”content” value=”” />
  <put-attribute name=”footer” value=”/WEB-INF/views/common/footer.web.jsp” />
 </definition>
       
 <definition name=”home” extends=”base”>
  <put-attribute name=”title” value=”Your Web Project” />
  <put-attribute name=”content” value=”/WEB-INF/views/web/home.web.jsp” />
 </definition>
       
 <definition name=”userRegistration” extends=”base”>
  <put-attribute name=”title” value=”Register” />
  <put-attribute name=”content” value=”/WEB-INF/views/web/userRegistration.web.jsp” />
 </definition>
       
 <definition name=”dashboard” extends=”base”>
  <put-attribute name=”title” value=”Dashboard” />
  <put-attribute name=”content” value=”/WEB-INF/views/web/dashboard.web.jsp” />
 </definition>
       
 <definition name=”error” extends=”base”>
  <put-attribute name=”title” value=”Error” />
  <put-attribute name=”content” value=”/WEB-INF/views/web/error.web.jsp” />
 </definition>
</tiles-definitions>
</i>

Необходимы параметры запуска виртуальной машины

1
-Dconf.path=”path-to-config-folder-on-target-machine-containing-property-files”

См. Src / main / resources / config / spring / applicationContext-properties.xml

1
2
3
4
5
6
7
8
<util:properties id=”mdbProps” location=”file:#{systemProperties[‘conf.path’]}/config/props/mongodb.properties” />
<util:properties id=”dbProps” location=”file:#{systemProperties[‘conf.path’]}/config/props/database.properties” />
<util:properties id=”logProps” location=”file:#{systemProperties[‘conf.path’]}/config/props/log4j.properties” />
<util:properties id=”amProps” location=”file:#{systemProperties[‘conf.path’]}/config/props/api.messages.properties” />
 
      :
 
      :

Скриншоты

Фреймворки, объединенные вместе для поддержки нескольких действий в этом слое кода:

Maven Java 1.7
Весна 3.1.1
Спящий 4+
Spring Data
MongoDB
Акка 1.3+
Apache Tiles 2+
Twitter Bootstrap 2+
Скорость для почты
BootSwatch
JQuery

Ссылка: Spring, Hibernate, Spring Data, Akka, Twitter Bootstrap, Apache Tiles, jQuery, веб-проект Maven Java Kickstarter Codebase от нашего партнера по JCG Й Камеш Рао в блоге OrangeApple .