VEA - Vývoj Enterprise Aplikací

cube

Předmět zmiňuje charakteristiku enterprise aplikací. Posluchači se dále seznámí se vzory využívanými při vývoji EA. Následně je předmět zaměřen na prostředky pro jejich tvorbu, které nabízí platforma JAVA. Postupně jsou posluchači seznámeni se třemi nejběžněji používanými vrstvami enterprise aplikací a tedy i s nejrozšířenějším architektonickým přístupem vícevrstvého modelu. Místo je zde věnováno technologiím bezpečnoasti a integrace EA v prostředí JAVA. Příklady kódu a práce na cvičeních je pak prováděna s využitím rámce spring.io.

Zadání domácího úkolu

Vytvořte skupinovou prezentaci o projektu z minulého semestru (nebo obdobného) a zaměřte se na:

  1. Architerkturu projektu
  2. Využití návrhových vzorů v projektu a použitých knihovnách
  3. Detailní popis principů a jejich ověření a způsobu fungování
  4. Přiložte výsledky experimentů
  5. Interakci jednotlivých vzorů a technologií a důsledky na způsob použití

public interface SimpleEntity

package vea2015;

public interface SimpleEntity {

public void setId(int id);
}

startNetworkServer.bat

:runNoClasspath
"%_JAVACMD%" %DERBY_OPTS% -Duser.language=en -Dderby.drda.debug=true -classpath "%LOCALCLASSPATH%" org.apache.derby.drda.NetworkServerControl start %DERBY_CMD_LINE_ARGS%
goto end

xml config

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jee = "http://www.springframework.org/schema/jee"
xmlns:tx = "http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
">

<context:component-scan base-package="vea2015" />
<mvc:annotation-driven />
<aop:aspectj-autoproxy />
<context:load-time-weaver/>
<jee:jndi-lookup id="vea2015DS" jndi-name="java:jboss/datasources/vea2015"></jee:jndi-lookup>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean class="org.springframework.context.support.ResourceBundleMessageSource"
id="messageSource">
<property name="basename" value="messages" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="url" value="jdbc:derby://localhost/vea2015;create=true"/>
<property name="username" value="app"/>
<property name="password" value="app"/>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="vea2015"/>
<property name="packagesToScan" value="vea2015" />
<property name="dataSource" ref="vea2015DS" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.DerbyTenSevenDialect</prop>
</props>
</property>
</bean>
<tx:annotation-driven />
<bean id="persistenceExceptionTranslationPostProcessor"
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
</beans>

transaction manager

<bean id="transactionManager" 
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

Create tables

CREATE TABLE Person (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), name varchar(255), surname varchar(255), dob DATE, shipId INTEGER REFERENCES StarShip(id) , CONSTRAINT Person_primarykey PRIMARY KEY (id))

CREATE TABLE StarShip (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), callSign varchar(255), army BOOLEAN, crewCapacity INTEGER, CONSTRAINT StarShip_primarykey PRIMARY KEY (id))