使用MAVEN搭建spring + spring MVC+Shiro+Druid环境

之前是使用servlet来开发接口, 写跳转servlet,开发效率比较低,决定使用框架

第一步:
下载Maven的安装包及配置环境变量
来自(https://blog.csdn.net/lp1791803611/article/details/51649059)

第二步:
创建maven项目
来自(https://www.cnblogs.com/yejunfeng/p/7231677.html)

因为创建的war项目不知道什么原因,他缺少了web.xml
所以我们需要修补一下
右键项目,找到JavaEE Tools,选择Generate Deployment......

到此,项目还不算建好。
还需要再改一下
右键项目,选择Properties---Project Facets 可以在此部分添加java ee 项目依赖
修改java为1.8,Dynamic为3.0,但是在这里是改不了3.0的,所以这步改java为1.8就可以了。

出现错误!!

可以看出,其中一个是缺少jar,, 我们区本地仓库C:\Users\hasee.m2\repository\org\apache\maven寻找
删掉上级文件1.1,并在pom中更改保存触发再次下载
两个错误一起解决了。。。

另外:

Eclipse如何创建properties文件
参考:

最终配置目录如上:

在pom中添加<dependency>即可下载扩展

如果觉得下载太慢的话,我们可以使用阿里云的私服。只要在settings下配置如下代码即可:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

———————————————————————————————————————

在目录结构中新增文件出现问题:

找自己出错项目的.classpath文件,打开,ctrl+f,找是否有以下文件,如果没有在末尾加进去,再refresh项目即可:

另外目录结构修改: windos -> preferce -> build path -> project 以文件夹显示工程
解决1:pom 中去掉sourceDiectri选项
解决2:项目中的。classpath中修改为<classpathentry kind="src" output="target/classes" path="src/main/java">

遇到项目与编译器环境不同问题:与Properties---Project Facets 不同,后者是建立与什么版本的依赖

按照流程配置,遇到404错误(遇到最麻烦的问题):

问题具体描述:
从标题不难看出,框架搭建号后,编译部署并启动项目一切正常,并没有报任何的错误,但是从页面访问controller时缺报404[Not Found]的错误。

1。按照上面一步步排除,排除了框架内部加载映射错误以及物理路径错误,关于注解器与适配器不相关,就不尝试了
2.在本地server启动,报错 logj不能加载--但是有这个包,是关于maven依赖的问题
解决: 添加maven依赖

2.继续报错
A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@564718df]
提出第三个有用信息Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
这是因为有jar包没有下载完全引起的,需要将相应包重新下载。
方法1、可通过右击项目名 -> Run as -> Maven test ,这时控制台会报哪个jar包出错。 (也可以打开DOS命令窗口,切换至项目目录,运行mvn test命令,和Eclipse的控制台输出信息一致)

就是这里了,哈哈 删掉,再刷新一下pom,在test, 无误,成功启动server

———————————————————————————————————————

好!成功进入第三个错误

Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: Initialization of bean failed;

解决, spring-mybatis.xml路径问题,把对应id的value中的/替换为。即可
———————————————————————————————————————

Shiro+token :

Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。

来自 https://blog.csdn.net/qq_33556185/article/details/51579680

token是一种身份认证与会话控制的机制,shiro中集成了token来做会话管理

Http 请求->访问应用层MVC框架DispatcherServlet , 通过视图解释器返回视图

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

将日志记录,性能统计,安全控制,事务处理,
异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
通过配置aop。xml联系类与关注点关系:http://www.cnblogs.com/xrq730/p/4919025.html
———————————————————————————————————————

mybatis+Druid连接池结构与功用:

使用druid对数据库连接池进行管理与配置,
使用mybatis数据库操作管理框架对原生jdbc来对数据库进行整合操作
参考

配置MyBatis与Druid 整合

来自 https://blog.csdn.net/vbirdbest/article/details/72821114
mybatis使用流程
1.在模型层新增模型类,
2.在DAO层(mapper)新增DAO事件
3.在spring MVC注册的映射文件包(entity.mapper)中新增实体映射文件(以表为单位):
4.mybatis-config.xml配置加载映射规则

来自 https://blog.csdn.net/yhl_jxy/article/details/52003079

mybatis使用流程(不使用mybatisUtil)
  1. //读取资源文件
    String resource = "mybatis-config.xml";
  2.         InputStream is = Resources.getResourceAsStream(resource);  
    
  3.         sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);  
    
  4.         session = sqlSessionFactory.openSession();  //获取了对应用户根据xml规则的操作DAO对象
    
  5. //调用映射文件中sql事务,查询--select--返回User对象
  6.         User user = userMainMapper.queryUserMainById(1);  
    
  7.         System.out.println("user="+user);  
    
  8.         System.out.println(user.getUsername());  
    

以上两种方法均会读取mybatis-config.xml
下面列出mybatis工作流程:

在 spring和MyBatis的配置中扫描mybatis-config.xml出错,扫描entity也出错--(把/换位.)

<!-- 自动扫描mapping.xml(数据源映射规则)文件,
                  扫描mybatis-config.xml出错,不知道原因,故这里不扫描,
                 改在公共操作类util/业务服务service中,需要 操作时读取mybatis-config.xm该配置文件,以此来统一归束DAO行为,
                 在mybatis-config.xml再次加载映射规则文件以获得entity-数据源映射规则(model-sql)具体entity中并访问到namespace具体sql id执行sql--> 
另外需要熟知::

model、dao、service、controller之间的关系,还有util和task的简介
来自 https://blog.csdn.net/wangsy613/article/details/77623221

配置MyBatis与Druid后,druid进入页面:http://localhost:8888/FinanceAppService/druid/datasource.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容