到目前为止,对后台java的mvc框架大概有个印象。
web java的工程,一般围绕着servlet做框架,包括struts、spring等都是对servlet的核心进行包装。主要的配置文件是web.xml文件,包括listener、context-param、servlet、servlet-mapping、filter等主要配置项。
listener用于配置上下文监听器
context-param设置容器加载时的配置文件
servlet配置框架的IOC;servlet-mapping配置需要分发的url路径
filter配置自定义的过滤器,所有url在进行响应之前所做的处理
springmvc框架
springmvc框架对servlet进行反转代理IOC,以spring作为容器;springMVC加载的dispatcherServlet分发器,对应的配置文件spring-mvc.xml文件。我们这直接将spingmvc作为对外提供接口的系统,通过json进行通讯。
spring-mvc.xml主要配置项:
1、context:component-scan 定义需要扫描的包,同时开启mvc:annotation-driven
3、mvc:resource 设置不需要dispatcherhandler分发的资源,同时相应的开启mvc:default-servlet-handler
4、bean 设置包括validator、validatorMessageSource、mutilpartResolver、annotationMethodHandlerAdapter等内容
5、aop:aspectj-autoproxy 设置全局的AOP,目前主要用在业务日志和异常日志。基于controller层处理输入输出和业务逻辑的考虑,业务日志用在方法调用完之后进行记录;基于service层对mapper和其他系统接口等网络调用的考虑,异常日志在service方法抛出异常之后进行调用,这样service层除非一些你不想记录的异常自定义处理之后,其他都由方法抛出即可。
controller
@controller @RequsetMapping("/") 针对class
@ResponseBody @RequestMapping("/") 针对具体接口
@Valid 对入参进行验证。一种是insert操作,需要验证;而对于查询操作,则最好直接request获取而不是实体映射
@Autowired 注入service层的类
service
@Service 针对class
@Autowired 注入可使用的service
@Resource 注入mapper的类
@Transactional
mapper
主要是用mybatis
model
设置bean,一般用于插入
filter
过滤器能够在具体响应之前做一些预处理,包括:接口的session统一验证、url中防注入,以及对于CORS时的response的设置等。
AOP切片
对于一些公共的模块提取出作为一个方法,能够获取出入参、方法签名等;通过session设置一些方法,主要用于调用前、调用后、异常、环绕等四个切入点。
其它点:
1、上传文件及excel文件解析;
2、FTP操作
3、proxool数据库连接池
4、线程控制