到目前為止损搬,對(duì)后臺(tái)java的mvc框架大概有個(gè)印象。
web java的工程,一般圍繞著servlet做框架廷蓉,包括struts、spring等都是對(duì)servlet的核心進(jìn)行包裝马昙。主要的配置文件是web.xml文件桃犬,包括listener、context-param行楞、servlet攒暇、servlet-mapping、filter等主要配置項(xiàng)子房。
listener用于配置上下文監(jiān)聽(tīng)器
context-param設(shè)置容器加載時(shí)的配置文件
servlet配置框架的IOC形用;servlet-mapping配置需要分發(fā)的url路徑
filter配置自定義的過(guò)濾器,所有url在進(jìn)行響應(yīng)之前所做的處理
springmvc框架
? ? ?springmvc框架對(duì)servlet進(jìn)行反轉(zhuǎn)代理IOC证杭,以spring作為容器田度;springMVC加載的dispatcherServlet分發(fā)器,對(duì)應(yīng)的配置文件spring-mvc.xml文件解愤。我們這直接將spingmvc作為對(duì)外提供接口的系統(tǒng)镇饺,通過(guò)json進(jìn)行通訊。
spring-mvc.xml主要配置項(xiàng):
1送讲、context:component-scan ? 定義需要掃描的包奸笤,同時(shí)開(kāi)啟mvc:annotation-driven ?
3、mvc:resource ? 設(shè)置不需要dispatcherhandler分發(fā)的資源哼鬓,同時(shí)相應(yīng)的開(kāi)啟mvc:default-servlet-handler
4监右、bean ? ?設(shè)置包括validator、validatorMessageSource异希、mutilpartResolver健盒、annotationMethodHandlerAdapter等內(nèi)容
5、aop:aspectj-autoproxy ? 設(shè)置全局的AOP,目前主要用在業(yè)務(wù)日志和異常日志味榛⊥旨幔基于controller層處理輸入輸出和業(yè)務(wù)邏輯的考慮,業(yè)務(wù)日志用在方法調(diào)用完之后進(jìn)行記錄搏色;基于service層對(duì)mapper和其他系統(tǒng)接口等網(wǎng)絡(luò)調(diào)用的考慮善茎,異常日志在service方法拋出異常之后進(jìn)行調(diào)用,這樣service層除非一些你不想記錄的異常自定義處理之后频轿,其他都由方法拋出即可垂涯。
controller
@controller @RequsetMapping("/") ? 針對(duì)class
@ResponseBody ?@RequestMapping("/") ? 針對(duì)具體接口
@Valid ? 對(duì)入?yún)⑦M(jìn)行驗(yàn)證。一種是insert操作航邢,需要驗(yàn)證耕赘;而對(duì)于查詢操作,則最好直接request獲取而不是實(shí)體映射
@Autowired ? 注入service層的類(lèi)
service
@Service ?針對(duì)class
@Autowired ?注入可使用的service
@Resource ? 注入mapper的類(lèi)
@Transactional
mapper
? ? 主要是用mybatis
model
? ? 設(shè)置bean膳殷,一般用于插入
filter
? ? 過(guò)濾器能夠在具體響應(yīng)之前做一些預(yù)處理操骡,包括:接口的session統(tǒng)一驗(yàn)證、url中防注入赚窃,以及對(duì)于CORS時(shí)的response的設(shè)置等册招。
AOP切片
? ? 對(duì)于一些公共的模塊提取出作為一個(gè)方法,能夠獲取出入?yún)⒗占⒎椒ê灻仁顷煌ㄟ^(guò)session設(shè)置一些方法,主要用于調(diào)用前辱匿、調(diào)用后键痛、異常、環(huán)繞等四個(gè)切入點(diǎn)匾七。
其它點(diǎn):
1絮短、上傳文件及excel文件解析;
2乐尊、FTP操作
3戚丸、proxool數(shù)據(jù)庫(kù)連接池
4、線程控制