Fork me on GitHub

Programming Design Notes

Spring 整合 JPA

| Comments

很久沒寫文章,隨意找些東西來記錄一下。

Spring 整合 JPA 是很簡單的,只需在 XML 檔案設定數個 Bean 就可以:

先設定好 persistence.xml:

(persistence.xml) download
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="defaultDS" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>jdbc/ctlok</non-jta-data-source>

        <class>com.ctlok.pro.entity.User</class>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        </properties>
    </persistence-unit>

</persistence>

Design Pattern - Decorator

| Comments

Decorator Pattern 可以令到不用改動原本物件的程式碼,而又可以擴充一些功能在這個物件上, 就好像 Plugin 一樣。你可以想像一下,WordPress 的 Plugin 並不需要改動核心的程式, 但又可以増加一些功能。 Java 上的 InputStream 一樣採用這種模式去實現。

看看以下例子應該有助你明白這個模式:


Design Pattern - Singleton

| Comments

Singleton Pattern 幫助你創造出唯一一個實例,保證任何物件要使用這個物件時,也是使用相同的實例。 那唯一一個實例有什麼用呢? 可減少系統負擔,不用建立多個實例,尤其是建立實例是需要複雜的計算, 在情況許可下使用 Singleton Pattern 是有助提高系統效能。 或在某些情況下例如 Cache 和 Pool 這些要共用物件的設計,大多數是只有一個實例存在於應用程式。

看看以下例子應該有助你明白這個模式:



Maven + Jetty 測試 JSF 2 Annotation

| Comments

剛剛使用 Maven + Jetty 的組合去測試一 JSF 2.0,但很奇怪,所有的 Java Bean 都找不到。 原來要 JSF 自動搜索 Java Bean 是要包裝成 WAR 才可以。

原本運行 Jetty 使用 mvn jetty:run ,只要改成 mvn jetty:run-war 就可以了。