在温故一下概念(请看最后末尾有亮点):

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

进行定制MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。(转自csdn AndyLizh的专栏)

本人:ssm + shiro的话,就会涉及到三个方面的配置:spring配置、springmvc的配置、shiro的配置

spring配置:这里过直接上我正在用的可行的配置文件内容,内容有详细的说明:

------------------------------spring.xml开始----------------------------------------------

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:lang="http://www.springframework.org/schema/lang" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"

xmlns:cache="http://www.springframework.org/schema/cache" xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/lang

http://www.springframework.org/schema/lang/spring-lang.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/cache

http://www.springframework.org/schema/cache/spring-cache.xsd

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task.xsd">

classpath:config.properties

destroy-method="close">

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

------------------------------spring.xml完----------------------------------------------

以下是那个com.yourpackagename.web.utils.PropertyUtils

package com.yourpackagename.web.utils;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

public class PropertyUtils extends PropertyPlaceholderConfigurer{

public static final Logger logger = Logger.getLogger(PropertyUtils.class);

private static Map propertyMap;

@Override

protected void processProperties(

ConfigurableListableBeanFactory beanFactoryToProcess,

Properties props) throws BeansException {

super.processProperties(beanFactoryToProcess, props);

propertyMap = new HashMap();

for (Object key : props.entrySet()){

String keyStr = key.toString();

String value = props.getProperty(keyStr);

propertyMap.put(keyStr, value);

}

}

public static String getValue(String key){

if (null != propertyMap){

String value = propertyMap.get(key);

return value;

}

return "";

}

public static String getRoot(){

String rootKey = "iceng.app.store.root";

String appstoreRoot = System.getProperty(rootKey);

Enumeration> enu = System.getProperties().propertyNames();

while (enu.hasMoreElements()) {

Object key = enu.nextElement();

if (key.toString().startsWith(rootKey)) {

appstoreRoot = System.getProperty(key.toString());

break;

}

}

logger.info(appstoreRoot);

return appstoreRoot;

}

}

以下是读取的配置文件config.properties:

#\u8D85\u7EA7\u7BA1\u7406\u5458

aaa.admin=admin

#\u6570\u636E\u5E93\u914D\u7F6E

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://127.0.0.1:3306/your_DB?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull

jdbc.username=root

jdbc.password=123456

jdbc.initialPoolSize=2

jdbc.minPoolSize=2

jdbc.maxPoolSize=5

以下是springMVC.xml配置,有详细的说明:

接下来是shiro.xml的配置:这是双Realm的配置

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"

default-lazy-init="true">

Shiro安全配置

/admin/login = anon

/user/login = anon

/manageradmin/* = authc,myRoles[admin]

/manageruser/*=authc,myRoles[user]

class="com.yourpackagename.web.shiro.utils.CustomizedModularRealmAuthenticator">

class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">

class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">

class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"

depends-on="lifecycleBeanPostProcessor">

有关ssm的文章,网上是在是太多,我再来写实在是浪费时间,所以我就从网上帮你整了一些我审阅过的文章:

1、JSP与Servlet的关系

Java提供一系列接口类(所谓接口类就是类中所有方法只提供方法声明,不提供任何的方法实现,这些类的实现就留给后继者去做。):Servlet、ServletConfig、Serializable,然后通过多重继承产生一个最通用的Servlet实现类(图中Gerneric Servlet类),接下来,通过一个多重继承与实现,产生一个新的实现类HttpServlet,用户在开发Servlet程序时只需继承这个类,从而产生一个自己的类(图中Hello_Servlet类),然后根据实际开发功能与信息处理需要,去实现该类中的相关方法即可。这就是前面提到的按照Servlet规范编写一个Java类,从而编写一个Servlet。

1.Web容器初始化过程

2.SpringMVC中web.xml配置

3.认识ServletContextListener

4.认识ContextLoaderListener

5.DispatcherServlet初始化(HttpServletBean • FrameworkServlet • DispatcherServlet)

6.ContextLoaderListener与DispatcherServlet关系

7.DispatcherServlet的设计

8.DispatcherServlet工作原理

希望这些资料有助于你对ssm、shiro、jsp和servlet

ssconvert 安装_在学ssm框架的时候,有点晕,会是会用了,但是一直搞不懂它的配置。该怎么深入理解?...相关推荐

  1. ssm mysql过程抛错_下列关于 SSM 框架的整合说法错误的是 。 ( ) B : 。 C : 。 D : 。_学小易找答案...

    [单选题]对于两方向出站信号机为防止闪双绿灯现象,电路采取的措施是( ) [单选题]MyBatis 的更新操作有关说发错误的是 . ( ) [单选题]SJ电路中接入FDGJ第三组前接点的作用是( ) ...

  2. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  3. java中的ssm框架是什么_什么是SSM框架,它的组成和作用是什么?

    SSM框架即指Spring+SpringMVC+MyBatis的简称,相比于之前的SSH(Struts+Spring+Hibernate),SSM更加轻量化和灵活,是目前比较主流的java web开发 ...

  4. java ee中ssh学后感_学习SSH,SSM框架有感

    JSP/Servlet基础 许多同学学习框架的时候,往往会忽视这部分内容,有的甚至没学JSP直接学习了框架,导致基础知识不扎实,只是会用框架,最后连JSP一共有几个内置对象都不知道.自己当时学的时候也 ...

  5. axios安装_一起学Vue:访问API(axios)

    目标 使用Vue+ElementUI+axios构建一个非常简单CRUD应用程序,以便您更好地了解它的工作方式. 什么是 axios? Axios 是一个基于 promise 的 HTTP 库,可以用 ...

  6. springmvc 优点_深入整合SSM框架引发底层原理——SpringMVC

    MVC概述 在Web系统开发中一般按照视图(View).模型(Model).控制(Controller)三层设计模式进行构建,视图层负责模型数据的渲染,将数据用一定的形式展现给用户:模型层负责监听实体 ...

  7. ssconvert 安装_使用Gnumeric ssconvert将ods文件转换为csv文件时替换或忽略换行符

    这是你的问题: ssconvert -O' separator =; quoting-mode = never'"f.ods""f.txt"; 通过阻止ssco ...

  8. dbcp连接池配置详解_重学MySQL:事务与连接池,一文详解带你搞懂

    拼多多三面惨败,java中间件.数据库与spring框架,答不上... 吊打MySQL:21性能优化实践+学习导图+55面试+笔记+20高频知识点 Mysql事务 事务: 事务指逻辑上的一组操作,组成 ...

  9. redis 什么是冷数据_阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂

    前言: 金九银十刚刚过去了,不知道很多小伙伴都拿到自己心仪的offer没有,我这边也收到了一个粉丝投来的消息,说看到阿里的面试真题之后人都是懵的,发现自己一窍不通,下面给大家分享我这个粉丝的经历,以及 ...

最新文章

  1. R语言指数分布(exponential distribution)函数(dexp, pexp, qexp rexp)实战
  2. WF4.0实战(七):请假流程(带驳回操作)
  3. JSP指令与动作——include forward param
  4. 斯坦福CS231n项目实战(一):k最近邻(kNN)分类算法
  5. mysql 一对多映射_mybatis关系映射之一对多和多对一
  6. SQL server注入
  7. bzoj千题计划153:bzoj2431: [HAOI2009]逆序对数列
  8. TreeView控件应用--访问文件或文件夹(一)
  9. Django05-2:路由分发/命名空间/伪静态/虚拟环境/django版本区别
  10. java建一个conversion_Scala中的JavaConverters和JavaConversions之间有什么区别?
  11. 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
  12. mysql 查询包含1或者2_Mysql:同一个表上有2个不同的查询,包含count和group by
  13. url没有参数名怎么直接带参数_用30行Python爬虫带你看PLMM(划掉,喵星人)
  14. wince flash Android,关于wince下用C#实现flash播放器
  15. asp.net添加自定义用户控件并传值
  16. 软件工程 - 个人博客系统 - 可行性分析与需求分析文档
  17. 微信加好友CALL地址 3.4.5.27
  18. 区块链技术应用与安全发展
  19. 半年学习tse的总结
  20. leetcode每日一题第三十二天-剑指 Offer 65. 不用加减乘除做加法(easy??middle了吧)

热门文章

  1. Windows10远程桌面Ubuntu——把服务器当超高配置的个人电脑使用
  2. ISME:宿主性别可以决定肠道微生物对寄生虫感染的响应
  3. 南方科技大学环境学院夏雨教授博士后一名(环境微生物方向)
  4. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)
  5. seaborn使用violinplot函数可视化小提琴图、并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度
  6. R语言使用hexbin包的hexbin函数可视化散点图、应对数据量太大、且有数据重叠的情况、普通散点图可视化效果变差的情况、提供了对六边形单元格的二元绑定、通过图例颜色标定每一个区域数据点的数量
  7. R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度、使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)
  8. Pandas使用to_dict函数将dataframe转化为字典(dict)格式数据并指定orientation参数生成不同形式的字典
  9. python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵
  10. sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss)