本文來自于摘抄總結(jié)
1、@Override重寫父類方法
如果想重寫父類的方法,比如toString()方法的話,在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性,@Overridepublic String toString(){...}這是正確的一旦寫錯(cuò) 寫成這樣@Overridepublic String tostring(){...}編譯器可以檢測出這種寫法是錯(cuò)誤的 這樣能保證你的確重寫的方法正確而如果不加@Overridepublic String tostring(){...}這樣編譯器是不會(huì)報(bào)錯(cuò)的 它只會(huì)認(rèn)為這是你自己新加的一個(gè)方法而已
2、@Configuration
用@Configuration注解的類,等價(jià)于xml中配置beans
3、@Bean
用@Bean標(biāo)注方法等價(jià)于XML中配置的bean
4、@Autowired進(jìn)行自動(dòng)注入
SPRing通過@Autowired注解Bean的依賴注入,@Autowired注入式按照類型注入的,只要配置文件中的bean類型需要和bean類型是一致的,這時(shí)候注入就沒有問題。但是如果相同類型的bean不止一個(gè),此時(shí)注入就會(huì)出現(xiàn)問題,Spring容器就無法啟動(dòng)
5、@Resource按照bean的名字來進(jìn)行注入
如果我們沒有使用@Resource時(shí)指定bean的名字,同時(shí)Spring容器中又沒有該名字的bean,這時(shí)候@Resource就會(huì)退化成@Autowired即按照類型注入,這樣就有可能違背使用@Resource的初衷。所以建議在使用@Resource時(shí)都顯示指定一下bean的名字@Resource(name="xxx")
6、@Primary優(yōu)先選擇
在Spring中使用注解,常使用@Autowired,默認(rèn)是根據(jù)類型Type來自動(dòng)注入的。但有些特殊情況,對同一個(gè)接口,可能有幾種不同的實(shí)現(xiàn)類,而默認(rèn)只采取其中一種的情況下@Primary的作用就出來了。
7、@Qualifier調(diào)整基于注解的字哦那個(gè)注入
在基于類型的自動(dòng)注入中,若出現(xiàn)了多個(gè)實(shí)例Bean,@Primary是一個(gè)高效的方式來決定注入那個(gè)示例。若想在選擇Bean的過程中擁有更多的控制,可以使用Spring的@Qualifier注解。可以在指定參數(shù)上使用@Qualifier,可以縮小類型匹配的范圍,更容易找到指定的Bean.例如@Qualifier("main")。
8、@Transactional
在Spring中@Tansactional提供一種控制事務(wù)管理的快捷手段。基于動(dòng)態(tài)代理的機(jī)制,提供了一種透明的事務(wù)管理機(jī)制,方便的解決在開發(fā)中碰到的問題。
9、Spring Boot
Spring Boot 是 Spring 產(chǎn)品中一個(gè)新的子項(xiàng)目,致力于簡便快捷地搭建基于 Spring 的獨(dú)立可運(yùn)行的應(yīng)用。大多數(shù)的 Spring Boot 應(yīng)用只需要非常少的 Spring 配置。
10、YAML語言
YAML 是專門用來寫配置文件的語言,非常簡潔和強(qiáng)大,遠(yuǎn)比 JSON 格式方便。
11、jetty
Jetty是一個(gè)提供HHTP服務(wù)器、HTTP客戶端和javax.servlet容器的開源項(xiàng)目。
12、OAuth
OAuth 是一種分布式身份驗(yàn)證和授權(quán)的開放標(biāo)準(zhǔn)。它于 2006 年由 Twitter 和業(yè)務(wù)合作伙伴 Ma.gnolia 開發(fā),用來方便地創(chuàng)建一些桌面小部件,這些小部件可以顯示來自已身份驗(yàn)證服務(wù)的信息。您不再需要編寫算法來執(zhí)行強(qiáng)密碼,或者處理忘記密碼的問題,或者強(qiáng)制用戶定期更改其密碼。
13、Grails中的mvc
Grails 是一個(gè)遵循 MVC 設(shè)計(jì)模式的 Web 開發(fā)框架。它分別用 Domain Class、View、Controller 對應(yīng)于 MVC 的模型、視圖和控制器。可以簡單的把一個(gè) Domain Class 理解為數(shù)據(jù)庫中的一張表,Grails 在底層通過 Hibernate 將 Domain Class 和數(shù)據(jù)庫的表進(jìn)行了映射。View 在 Grails 中指的是 GSP 頁面(注意是 GSP 不是 jsp),它用于顯示用戶界面。GSP 與 JSP 類似,既可以編寫靜態(tài)網(wǎng)頁的元素,也可以嵌入 Groovy 代碼實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容。Controller 在 Grails 中充當(dāng)著重要的角色:它可以響應(yīng)用戶的請求,可以接收用戶提交的表單,還可以訪問模型的數(shù)據(jù),并傳遞給 View。
14、Hibernate
工作原理:
(1)讀取并解析配置文件 。(2)讀取并解析映射信息,創(chuàng)建sessionFactory。(3)打開Session 。(4)創(chuàng)建事務(wù)Transation 。(5)持久化操作 。(6)提交事務(wù) 。(7)關(guān)閉Session 。(8)關(guān)閉SesstionFactory 。
優(yōu)勢:
(1)對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。(2) Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn),很大程度的簡化DAO層的編碼工作 。(3)Hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。(4)Hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級框架,映射的靈活性很出色,它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。
15、MVC
Controller截獲用戶通過鼠標(biāo)或鍵盤發(fā)出的請求,然后改變Model的狀態(tài),Model通過Observer Synchronization(觀察者模式)通知View自己的狀態(tài)發(fā)生了變化。View查詢Model展現(xiàn)數(shù)據(jù)。
16、從一臺到另外一臺服務(wù)器
然后 docker ps顯示哪些運(yùn)行在docker上面
17、壓縮和解壓
壓縮:
tar -cvf destination.tar.gz source
destination.tar.gz為目標(biāo)壓縮文件
source為源文件或源文件夾
解壓:
tar -xvf cache-api.tar.gz
18、重要命令記錄
grails
create-app cache-api 創(chuàng)建app
run-app -port=2222部署到2222端口
create-controller applicationController 創(chuàng)建controller
create-service PsqlService 創(chuàng)建service
create-domain-class cache 創(chuàng)建domain
19、IntelliJ IDEA的優(yōu)化導(dǎo)包設(shè)置路徑
Settings
| Editor
| General
| Auto Import
and Optimize imports option in the Commit Project
dialog.勾選后會(huì)自動(dòng)刪除不要的import
20、查看cpu和內(nèi)存
cat /proc/cpuinfo 查看cpu
free -m 查看內(nèi)存
21、grails刪除
使用grails常見生成代碼如上,生成是能生成,但是怎么刪除呢?使用grails help查看發(fā)現(xiàn)也沒有delete或者remove代碼。網(wǎng)上查了一下,沒有自動(dòng)刪除的代碼,只能手動(dòng)刪除,拿grails create-domain-class Race這一句為例,僅僅需要?jiǎng)h除racetrack/test/unit/racetrack/RaceTests.groovy和racetrack/grails-app/domain/racetrack/Race.groovy
22、linux查看目錄結(jié)構(gòu)
tree命令
23、vi是vim的升級版
24、vi基本操作:
:set nu 顯示行數(shù)
u 撤銷
5dd 刪除5行
一些常用命令案例:1.刪除指定的某些行命令:(命令行命令模式)m,nd釋義:m是從第m行開始;n是從第n行開始;d是刪除操作。之后回車即可。例子:刪除m到n之間的行數(shù)step1:(命令行命令模式):m,nd——輸入從第m行到當(dāng)前位置的刪除命令step2:(命令行命令模式)回車——執(zhí)行刪除命令2.復(fù)制指定的某些行命令:(命令行命令模式):m,ny釋義:m是從第m行開始;n是從第n行開始;y是刪除操作。之后回車即可。例子:復(fù)制m到n之間的行數(shù)step1:(命令行命令模式):m,ny——輸入從第m行到當(dāng)前位置的刪除命令step2:(命令行命令模式)回車——執(zhí)行復(fù)制命令3.選中指定的某些行命令:(一般模式)mGVnG釋義:mG是從第m行開始;nG是直到第n行;V是進(jìn)入可視模式。之后可以進(jìn)行復(fù)制(y)、刪除(d)操作。例子1:選中m到n之間的行數(shù)step1:(一般模式):mGVnG——輸入從第m行到第n行選中例子2:全選step1:(一般模式):ggVG——全選選中4. vim多行注釋/刪除注釋注釋:ctrl+v 進(jìn)入列編輯模式,向下或向上移動(dòng)光標(biāo),把需要注釋的行的開頭標(biāo)記起來,然后按大寫的I,再插入注釋符,比如"//",再按Esc,就會(huì)全部注釋了。刪除:先按v,進(jìn)入visual模式,橫向選中列的個(gè)數(shù)(如"/ /"注釋符號,需要選中兩列),再按Esc,再按ctrl+v 進(jìn)入列編輯模式,向下或向上移動(dòng)光標(biāo),選中注釋部分,然后按d, 就會(huì)刪除注釋符號。5. 編程時(shí)自動(dòng)補(bǔ)全成員CTRL+N/P,n是向下找,p是向前找
24、切換
ssh 192.168.1.3
25、查看docker運(yùn)行程序
docker ps
26、獲取config里面application.yml的配置
//Retrieve property 'foo.bar.greeting' without specifying type (default is String), otherwise use value "Hello" def greeting = grailsApplication.config.getProperty('foo.bar.greeting', "Hello")27、 @Value('${foo.bar.hello}')
In Groovy code you must use single quotes around the string for the value of the Value annotation otherwise it is interpreted as a GString not a Spring expression.
新聞熱點(diǎn)
疑難解答