到目前為止,對后臺java的mvc框架大概有個印象。
web java的工程,一般圍繞著servlet做框架,包括struts、spring等都是對servlet的核心進(jìn)行包裝。主要的配置文件是web.xml文件,包括listener、context-param、servlet、servlet-mapping、filter等主要配置項(xiàng)。
listener用于配置上下文監(jiān)聽器
context-param設(shè)置容器加載時的配置文件
servlet配置框架的IOC;servlet-mapping配置需要分發(fā)的url路徑
filter配置自定義的過濾器,所有url在進(jìn)行響應(yīng)之前所做的處理
springmvc框架
? ? ?springmvc框架對servlet進(jìn)行反轉(zhuǎn)代理IOC,以spring作為容器;springMVC加載的dispatcherServlet分發(fā)器,對應(yīng)的配置文件spring-mvc.xml文件。我們這直接將spingmvc作為對外提供接口的系統(tǒng),通過json進(jìn)行通訊。
spring-mvc.xml主要配置項(xiàng):
1、context:component-scan ? 定義需要掃描的包,同時開啟mvc:annotation-driven ?
3、mvc:resource ? 設(shè)置不需要dispatcherhandler分發(fā)的資源,同時相應(yīng)的開啟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層對mapper和其他系統(tǒng)接口等網(wǎng)絡(luò)調(diào)用的考慮,異常日志在service方法拋出異常之后進(jìn)行調(diào)用,這樣service層除非一些你不想記錄的異常自定義處理之后,其他都由方法拋出即可。
controller
@controller @RequsetMapping("/") ? 針對class
@ResponseBody ?@RequestMapping("/") ? 針對具體接口
@Valid ? 對入?yún)⑦M(jìn)行驗(yàn)證。一種是insert操作,需要驗(yàn)證;而對于查詢操作,則最好直接request獲取而不是實(shí)體映射
@Autowired ? 注入service層的類
service
@Service ?針對class
@Autowired ?注入可使用的service
@Resource ? 注入mapper的類
@Transactional
mapper
? ? 主要是用mybatis
model
? ? 設(shè)置bean,一般用于插入
filter
? ? 過濾器能夠在具體響應(yīng)之前做一些預(yù)處理,包括:接口的session統(tǒng)一驗(yàn)證、url中防注入,以及對于CORS時的response的設(shè)置等。
AOP切片
? ? 對于一些公共的模塊提取出作為一個方法,能夠獲取出入?yún)ⅰ⒎椒ê灻?;通過session設(shè)置一些方法,主要用于調(diào)用前、調(diào)用后、異常、環(huán)繞等四個切入點(diǎn)。
其它點(diǎn):
1、上傳文件及excel文件解析;
2、FTP操作
3、proxool數(shù)據(jù)庫連接池
4、線程控制