2. Feltételek
ZH-ban csak azt kérem számon, amit
írásban leadok
2016. 09. 28. ZH
2016. 11. 02. ZH
3 db beadandó lehetőség
Ebből 2 db kötelező
Megajánlott jegy
2016. 11. 30. javítási lehetőség ZH-val
2016. 12. 07. utolsó 2 gyakorlat
2 igazolatlan hiányzást fogadok el
4. Nagyvállalati környezet
Ezek nem lesznek ZH kérdések
Milyen nehézségek merülnek föl az alábbi
területeken?
Kommunikáció
Forráskód
Üzemeltetés
Karbantartás, pl. kódkarbantartás, átvehető
5. • Java Server Faces
• Enterprise Java Beans
• Context and Dependency Injection
• Java Persistence API
• Java Authentication and Authorization
Services
• Java Cryptography Extension
• Java Naming and Directory Interface
• Java Messaging Service
• Java API for XML Web Services
• Java API for RESTful Web Services
• Üzemeltetés: loggolás, felügyelet
6. Maven - JAR, WAR, EAR
“mvn archetype:generate” paranccsal a 1608-at választva lehet ezt a kiindulási alapot megkapni
pom.xml fejléc:
<groupId>hu.tigra.jee</groupId>
<artifactId>1608</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>WildFly Quickstarts: 1608</name>
Java verzió: 1.8 kell pl. lambdák használatához:
<!-- maven-compiler-plugin -->
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
Amit új projektben majd úgy kell összerakni:
<dependencies>
Amit egy új JEE Wildfly projektben érdemes lamásolni:
<build>
7. Model
https://en.wikipedia.org/wiki/Model–view–controller
docs.oracle.com/javaee - 37.1 Entities
@Entity
public class Member implements Serializable
{
@Id
@GeneratedValue
private Long id;
@NotNull
@Size(min = 1, max = 25)
private String name;
@NotNull
@NotEmpty
@Email
private String email;
…
}
EntityManager.persist()
hívható ilyen objektumra
Azonosító és generált
Kötelező és behatárolt
méretű
Kötelező, nem üres és
email típusú
8. View-ból csak <h:form>
https://en.wikipedia.org/wiki/Model–view–controller
docs.oracle.com/javaee/7 -10.2 ... HTML Tag Library ...
<h:form id="reg">
<h2>Member Registration</h2>
<p>Enforces annotation-based constraints defined on the
model class.</p>
<h:panelGrid columns="3" columnClasses="titleCell">
...
<h:outputLabel for="phoneNumber" value="Phone #:"/>
<h:inputText id="phoneNumber"
value="#{newMember.phoneNumber}"/>
<h:message for="phoneNumber" errorClass="invalid"/>
</h:panelGrid>
<p>
<h:panelGrid columns="2">
<h:commandButton id="register"
action="#{memberController.register}"
value="Register" styleClass="register"/>
...
</h:panelGrid>
</p>
</h:form>
<form> mezőit
kapja meg a
MemberController
<outputLabel>
címke, 1. oszlop
<commandButton>
action =
controller.hívandó
metódus
<inputText> beviteli
mező, 2. oszlop
<message> 3. oszlop
9. Controller
https://en.wikipedia.org/wiki/Model–view–controller
public class MemberController {
…
@Produces
@Named
private Member newMember;
@PostConstruct
public void initNewMember() {
newMember = new Member();
}
public void register() throws Exception {
try {
memberRegistration.register(newMember);
FacesMessage m = new FacesMessage(
FacesMessage.SEVERITY_INFO, "Registered!", “successful”
);
facesContext.addMessage(null, m);
initNewMember();
…
}
A Controller-ből hívjuk a business logika
objektumokat
@Named erre a névre hivatkozik index.xhtml
@Produces miatt HtmlResponse-ba kerül
Ez a metódust hívja
<commandButton>
Az üzleti logika:
memberRegistration.register()
11. Szoftvermérnöki ismeretek
Ezek sem lesznek ZH kérdések
Általános gyűjtemény: principles.adactio.com
Simplicity x 9
The Robustness Principle: Be conservative in what you send; be
liberal in what you accept.
The DRY Principle: Every piece of knowledge must have a single,
unambiguous, authoritative representation within a system.
SOLID (object-oriented design)
The Agile Manifesto