X-Spirit
Always Beyond the Time
|
|
BlogJava |
首頁 |
發新隨筆 |
發新文章 |
聯系 |
聚合![]() |
隨筆:91 文章:1 評論:65 引用:0 |
然后,在源包節點下創建Spring配置文件applicationContext.xml,選擇如圖所示的幾個命名空間: 選擇完成,然后在Beans節點之間添加如下內容:
3. 配置JPA持久化支持 在服務選項卡中,選擇MySQL數據庫驅動,然后右鍵單擊,選擇連接設置,配置你要使用的數據庫: 數據庫配置完畢,然后回到項目選項卡,右鍵單擊剛創建的項目,選擇新建-->其它-->持久性-->持久性單元 在新建持久性單元對話框中選擇持久性庫為Hibernate,即選擇Hibernate為JPA持久單元的實現,數據庫連接選擇我們剛配置好的MySQL連接。 單擊完成。此時,Hibernate的JPA庫已經被添加到項目的lib目錄下了。包含了基本的Hibernate jar包和Hibernate JPA支持jar包。 注:使用JPA的一個好處就是我們不需要在一個統一的配置文件里羅列所有的實體類,而是可以讓實體管理器自動掃描所有被@Entity注解了的實體類。要實現這種功能,如果項目的JPA實現遷移到TopLink Essential,需要加入下面的配置: 找到項目中的“配置文件”節點,打開persistence.xml文件,調整到XML視圖中,在<provider> </provider>節點后添加: <exclude-unlisted-classes>false</exclude-unlisted-classes> 一行。如果希望使用Hibernate實現,請一定不要加入這一行,否則,您必須將您創建的所有實體類逐一添加到persistence.xml中。 如果要使用Spring提供的JpaTemplate(即實現JpaDaoSupport方式),則回到spring的applicationContext.xml文件,在<beans>節點里面添加:
至此,持久化支持配置完畢。 創建實體類和相應的JPA控制類右鍵單擊項目,選擇新建-->其它-->持久性-->通過數據庫生成實體類,選擇數據庫表: 點擊下一步,輸入合適的包名 下一步,映射選項如下圖所示: 選擇新建-->其它-->持久性-->基于實體類的JPA控制器類,下一步: 添加要生成控制器類的實體類,下一步: 選擇合適的包,然后完成。 后面的配置無非就是將JPA的控制器類寫入Spring的配置文件,然后在AOM的LiteBean中注入這些控制器類,實現數據庫操作以及相應的業務邏輯。 注:解決Spring與Hibernate JPA的沖突: 如上圖所示:選擇工具--> 庫 --> 庫位置-->選擇當前編輯的項目,選中Spring Framework 2.5,然后去掉cglib2.2那個jar包。這個包與Hibernate JPA中的cglib 2.1.3.jar有沖突
文章來源:http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!776.entry
今天發現服務器上的Oracle11g突然登錄不上去了,提示ORA-28002錯誤,說是口令過期。
不當DBA還真不知道Oracle有這神秘功能。 上網上一查,有類似遭遇的朋友在論壇上求助,人家讓他找DBA。汗。。。 好在有的DBA樂于分享,終于找到了解決方案: 1. 用DBA賬戶登錄SQL PLUS。我用的是sysman。 2. 系統會提示口令失效,但是會馬上讓你重置新密碼。 3. 重置之后,進入SQL PLUS控制臺。 4. 查看口令失效用戶的profile文件 SQL>SELECT username,profile FROM dba_users;
EM(Web界面的控制臺):服務器>用戶,查看口令失效的用戶對應的概要文件,這里假設為DEFAULT,下同。 5. 查看對應的概要文件的口令有效期設置 SQL>SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
EM(Web界面的控制臺):服務 器>概要文件>選擇剛剛查到的概要文件DEFAULT>查看,查看口令下面的有效期值。 6.將口令有效期默認值180天 修改成“無限制”(此項要慎重!除非你真得不想要這個密碼失效的機制!) SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
EM:服務器>概要文件>選擇剛剛查到的概要文件DEFAULT>編輯>口令,在有效期輸入 或選擇你需要的值,保存。 該參數修改實時生效。 出于數據庫安全性考慮,不建議將PASSWORD_LIFE_TIME值設置 成UNLIMITED,即建議客戶能夠定期修改數據庫用戶口令。 在修改PASSWORD_LIFE_TIME值之前已經失效的用戶,還是需 要重新修改一次密碼才能使用。 SQL>ALTER USER test INDENTIFIED BYpassword
也可以從SQL Developer 里面來修改用戶的密碼,用sysman賬戶登錄以后,找到數據庫中的其他用戶節點,展開,找到你要修改密碼的用戶。然后編輯用戶,對用戶密碼進行重置,如下圖: ![]()
@import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
內部服務參數配置:
JAVA_OPTS="-server -XX:+UseParNewGC -Xms1024m -Xmx2048m -XX:MaxNewSize=128m -XX:NewSize=128m -XX:PermSize=96m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:CMSInitiatingOccupancyFraction=1 -XX:+CMSIncrementalMode -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=20000 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:CMSIncrementalDutyCycleMin=10 -XX:CMSIncrementalDutyCycle=30 -XX:CMSMarkStackSize=8M -XX:CMSMarkStackSizeMax=32M"前端應用參數配置: JAVA_OPTS="-server -Xmx4096m -Xms4096m -Xmn480m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=8 -XX:CMSFullGCsBeforeCompaction=0
-XX:+UseCMSCompactAtFullCollection -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0" 參數說明: -Xmx1280m:設置JVM最大可用內存為1280m。最大可設為3550m。具體應用可適當調整。 -Xms1280m:設置JVM初始內存為1280m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內存。 -Xmn480m:設置年輕代大小為480m。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。 -Xss256k:設置每個線程的堆棧大小。JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。 -XX:PermSize=64m:指定 jvm 中 Perm Generation 的最小值。 這個參數需要看你的實際情況。可以通過jmap 命令看看到底需要多少。 -XX:MaxPermSize=128m:指定 Perm Generation 的最大值 -XX:+UseConcMarkSweepGC:設置并發收集器 -XX:ParallelGCThreads=8:配置并行收集器的線程數,即:同時多少個線程一起進行垃圾回收。此值最好配置與處理器數目相等。 -XX:CMSFullGCsBeforeCompaction=0:由于并發收集器不對內存空間進行壓縮、整理,所以運行一段時間以后會產生“碎片”,使得運行效率降低。此值設置運行多少次GC以后對內存空間進行壓縮、整理。 -XX:+UseCMSCompactAtFullCollection:打開對年老代的壓縮。可能會影響性能,但是可以消除碎片。 -XX:SurvivorRatio=8:每個survivor space 和 eden之間的比例。 -XX:MaxTenuringThreshold=7:設置垃圾最大年齡。如果設置為0的話,則年輕代對象不經過Survivor區,直接進入年老代。對于年老代比較多的應用,可以提高效率。如果將此值設置為一個較大值,則年輕代對象會在Survivor區進行多次復制,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概率。 -XX:GCTimeRatio=19:設置垃圾回收時間占程序運行時間的百分比,公式為1/(1+n)。 -Xnoclassgc:禁用類垃圾回收,性能會有一定提高。 -XX:+DisableExplicitGC:當此參數打開時,在程序中調用System.gc()將會不起作用。默認是off。 -XX:+UseParNewGC:設置年輕代為并行收集。可與CMS收集同時使用。 -XX:-CMSParallelRemarkEnabled:在使用 UseParNewGC 的情況下 , 盡量減少 mark 的時間。 -XX:CMSInitiatingOccupancyFraction=70:指示在 old generation 在使用了 70% 的比例后 , 啟動 concurrent collector。 -XX:SoftRefLRUPolicyMSPerMB=0:每兆堆空閑空間中SoftReference的存活時間。 @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); |