Maven项目结构
src/main/java
com.xxxx.web (package)
存放各种controller,负责前后交互,调用service接口
com.xxxx.dao/mapper (package)
存放链接数据库的dao层java文件,负责链接数据库(那种只有接口木有实习类的)
com.xxxx.service (package)
存放各种接口定义类
com.xxxx.servicelmpl (implements) (package)
存放接口实现类,用于链接controller和dao层
com.xxxx.utils (package)
存放各种工具类,比如字符串处理,网络请求,图片处理,发短信。。。
com.xxxx.models
存放各种跟前端对接的模板类(前端每个模块都对应java的一个模板类,比如注册信息,列表行信息,商品信息,招聘信息等)
com.xxxx.entitys
存放各种实体类,跟数据库表或者表连接视图对应
com.xxxx.bases
存放各种父类
com.xxxx.others
其他功能类,例如权限,拦截过滤等
com.xxxx.others2
调用远程微服务、http接口
在java中默认配置文件的根目录就是src/main/resources
可以配置一些 SpringMVC配置文件XML 【前后交互】
Mybatis的配置文件XML
mybatis的xml目录
各种对应表的xml配置文件
web.xml(类似操作系统的注册表)
jar包
每一个jar包也有可能是maven项目
xml文件的语法跟html一样
在xml中,可以通过标签获取到自定义的标签,通过id或者name等等都可以拿到。
操作XML也叫做dom操作
tomcat是另外一个java程序
作业:用java操作xml
【面试大亮点】
是星星的代表Java自带,tomcat默认调用web.xml
要在web.xml配置调用的路径,tomcat只能识别web.xml,所以需要将其他的xml配置到web.xml中,通过调用web.xml调用其他的xml,类似springXML,SpringMVC.xml,Mybatis.xml。
tomcat默认不会识别resources目录下的配置文件,我们在web.xml配置文件中需要显式给出spring mybatis mvc等配置文件的路径
jar包导进来如何执行?
jar包进来之后,至少有一个方法要tomocat调用到,然后产生连环调用;所以jar包里面必须包含一个servlet叫做dispatcherServlet
通过web.xml拦截所有的请求打到dispatcherServlet,基本所有信息都通过dispaatcherServlet交互
dispatcherServlet(相当于controller目录)识别servlet需要反射
tomcat请求controller:
拿到请求之后,通过反射获取注解信息,看看哪个符合前端请求路径,但是问题太慢了。另一个策略:tomcat启动的时候完成对他的反射,将他们的映射关系存到哈希map中,key是url路径,value是controller的方法实例,在通过请求时,通过哈希map匹配并拿到controller实例以及controller方法的实例;
面试题:servlet或者controller是安全的吗?
controller出现全局变量是不安全的,不要有写操作,主要因为单例模式,这个类只有一个对象
问题:tomocat在启动时,需要扫描controller,tomocat不认识controller怎么办?
还需要找其他的中间点
controller属于前后交互,需要在这两个xml里面寻找启动类。
调用顺序,所以写的话要从后往前写