首先要理清楚代碼結(jié)構(gòu)和業(yè)務(wù)結(jié)構(gòu)(應(yīng)該有些文檔或者大的流程圖),這是閱讀具體代碼的前提。
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
閱讀Java?web項目的代碼:
你需要找到
View層的代碼:前端頁面、圖片、資源文件都在其中。
Controller層的代碼:控制試圖與模型層以及數(shù)據(jù)傳遞。
Service層的代碼:業(yè)務(wù)邏輯。
Dao層的代碼:數(shù)據(jù)庫訪問邏輯。
從web.xml?-?appcontext.xml?-?xxx
JAVA WEB項目的網(wǎng)絡(luò)購物網(wǎng)站源代碼的話,很復(fù)雜的話,肯定是沒有的,你可以去eoe或者安卓巴士網(wǎng)站看看有沒有源碼
package me.gacl.main;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Sendmail {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.sohu.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
//使用JavaMail發(fā)送郵件的5個步驟
//1、創(chuàng)建session
Session session = Session.getInstance(prop);
//開啟Session的debug模式,這樣就可以查看到程序發(fā)送Email的運行狀態(tài)
session.setDebug(true);
//2、通過session得到transport對象
Transport ts = session.getTransport();
//3、使用郵箱的用戶名和密碼連上郵件服務(wù)器,發(fā)送郵件時,發(fā)件人需要提交郵箱的用戶名和密碼給smtp服務(wù)器,用戶名和密碼都通過驗證之后才能夠正常發(fā)送郵件給收件人。
ts.connect("smtp.sohu.com", "gacl", "郵箱密碼");
//4、創(chuàng)建郵件
Message message = createSimpleMail(session);
//5、發(fā)送郵件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
/**
* @Method: createSimpleMail
* @Description: 創(chuàng)建一封只包含文本的郵件
* @param session
* @return
* @throws Exception
*/
public static MimeMessage createSimpleMail(Session session)
throws Exception {
//創(chuàng)建郵件對象
MimeMessage message = new MimeMessage(session);
//指明郵件的發(fā)件人
message.setFrom(new InternetAddress("gacl@sohu.com"));
//指明郵件的收件人,現(xiàn)在發(fā)件人和收件人是一樣的,那就是自己給自己發(fā)
message.setRecipient(Message.RecipientType.TO, new InternetAddress("gacl@sohu.com"));
//郵件的標題
message.setSubject("只包含文本的簡單郵件");
//郵件的文本內(nèi)容
message.setContent("你好??!", "text/html;charset=UTF-8");
//返回創(chuàng)建好的郵件對象
return message;
}
}
一:學(xué)會如何讀一個JavaWeb項目源代碼 步驟:表結(jié)構(gòu)-web.xml-mvc-db-spring
ioc-log- 代碼
1、先了解項目數(shù)據(jù)庫的表結(jié)構(gòu),這個方面是最容易忘記 的,有時候我們只顧著看每一個方法是怎么進行的,卻沒
有去了解數(shù)據(jù)庫之間的主外鍵關(guān)聯(lián)。其實如果先了解數(shù)據(jù) 庫表結(jié)構(gòu),再去看一個方法的實現(xiàn)會更加容易。
2、然后需要過一遍web.xml,知道項目中用到了什么攔
截器,監(jiān)聽器,過濾器,擁有哪些配置文件。如果是攔截 器,一般負責(zé)過濾請求,進行AOP 等;如果是監(jiān) 可能是定時任務(wù),初始化任務(wù);配置文件有如使用了 spring
后的讀取mvc 相關(guān),db 相關(guān),service 相關(guān),aop 相關(guān)的文件。
3、查看攔截器,監(jiān)聽器代碼,知道攔截了什么請求,這
個類完成了怎樣的工作。有的人就是因為缺少了這一步, 自己寫了一個action,配置文件也沒有寫錯,但是卻怎么
調(diào)試也無法進入這個action,直到別人告訴他,請求被攔
4、接下來,看配置文件,首先一定是mvc相關(guān)的,如 springmvc
中,要請求哪些請求是靜態(tài)資源,使用了哪些 view 策略,controller 注解放在哪個包下等。 然后是db 相關(guān)配置文件,看使用了什么數(shù)據(jù)庫,使用了
什么orm框架,是否開啟了二級緩存,使用哪種產(chǎn)品作 為二級緩存,事務(wù)管理的處理,需要掃描的實體類放在什 么位置。最后是spring 核心的ioc
功能相關(guān)的配置文件, 知道接口與具體類的注入大致是怎樣的。當(dāng)然還有一些如 apectj 置文件,也是在這個步驟中完成
5、log
相關(guān)文件,日志的各個級別是如何處理的,在哪些 地方使用了log 記錄日志
6、從上面幾點后知道了整個開源項目的整體框架,閱讀 每個方法就不再那么難了。
7、當(dāng)然如果有項目配套的開發(fā)文檔也是要閱讀的。