网站seo优化的重要性,哪里有好看的网站,海口室内设计公司排名,网站诊断分析案例目录
一、SpringMVC简介#xff1a;
二、SpringMVC快速入门#xff1a;
三、SpringMVC bean的管理#xff1a;⭐ ①配置bean ②扫描bean
四、SpringMVC配置类#xff1a;⭐
五、SpringMVC 请求与响应
六、SpringMVC REST风格
七、SSM整合 异常处理#xff1a;
八、…目录
一、SpringMVC简介
二、SpringMVC快速入门
三、SpringMVC bean的管理⭐ ①配置bean ②扫描bean
四、SpringMVC配置类⭐
五、SpringMVC 请求与响应
六、SpringMVC REST风格
七、SSM整合 异常处理
八、SSM整合流程⭐
九、SpringMVC 拦截器 一、SpringMVC简介
1.SpringMVC是一种表现层框架技术
2.SpringMVC用于进行表现层功能开发 与原始Servlet对比 二、SpringMVC快速入门
①使用SpringMVC技术需要先导入SpringMVC坐标与Servlet坐标
dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.10.RELEASE/version
/dependency
②创建SpringMVC控制器类等同于Servlet功能
RestController
public class BookController {RequestMapping(/save)ResponseBodypublic String save(){return null;}
}
③初始化SpringMVC环境同Spring环境设定SpringMVC加载对应的bean
Configuration
ComponentScan({com.itpan.controller})
EnableWebMvc
public class SpringMVCConfig {
}三、SpringMVC bean的管理⭐ ①配置bean ①三层架构中的bean 控制层controller:restcontroller controller responsebody 业务层service:service 持久层daoreposity ②其他bean(第三方自己写的……) 加入bean注解 ②扫描bean 在springconfig配置文件上加入ComponentScan({包名1, 包名2,……}) 总结 SpringMVC入门程序开发总结1N 一次性工作 创建工程设置服务器加载工程 导入坐标 创建web容器启动类加载SpringMVC配置并设置SpringMVC请求拦截路径 SpringMVC核心配置类设置配置类扫描controller包加载Controller控制器bean 多次工作 定义处理请求的控制器类 定义处理请求的控制器方法并配置映射路径RequestMapping与返回json数据ResponseBody 四、SpringMVC配置类⭐ SpringMVC等同于Web容器Spring是Spring-web的子容器所以同时加载Spring和SpringMVC会有bean加载冲突问题 解决办法ServletConfig配置类
加载SpringMVC配置 加载Spring配置 设定SpringMVC拦截请求路径 五、SpringMVC 请求与响应
见文章http://t.csdnimg.cn/puThL
获取请求参数http://t.csdnimg.cn/pu0KD
六、SpringMVC REST风格
与原始风格做对比
优点 隐藏业务行为无法通过地址得知对资源的何种操作 简化书写 通过请求类型区分业务操作 七、SSM整合 异常处理
程序遇到异常会抛给他的调用者就这样一层一层往上抛如果不处理最后会抛给jvm
步骤分析
判定异常分类 业务异常用户请求有误运行异常代码有BUG其他异常不确定异常例如系统崩了服务器坏了等等创建异常类在可能出现异常的地方抛出异常统一处理定义异常处理类
模拟实现 AOP思想
//RestControllerAdvice用于标识当前类为REST风格对应的异常处理器
RestControllerAdvice
public class ProjectExceptionAdvice {//ExceptionHandler用于设置当前处理器类对应的异常类型ExceptionHandler(SystemException.class)public Result doSystemException(SystemException ex){//记录日志//发送消息给运维//发送邮件给开发人员,ex对象发送给开发人员return new Result(ex.getCode(),null,ex.getMessage());}ExceptionHandler(BusinessException.class)public Result doBusinessException(BusinessException ex){return new Result(ex.getCode(),null,ex.getMessage());}//除了自定义的异常处理器保留对Exception类型的异常处理用于处理非预期的异常ExceptionHandler(Exception.class)public Result doOtherException(Exception ex){//记录日志//发送消息给运维//发送邮件给开发人员,ex对象发送给开发人员return new Result(Code.SYSTEM_UNKNOW_ERR,null,系统繁忙请稍后再试);}
}模拟异常
public Book getById(Integer id) {//模拟业务异常包装成自定义异常if(id 1){throw new BusinessException(Code.BUSINESS_ERR,请不要使用你的技术挑战我的耐性!);}//模拟系统异常将可能出现的异常进行包装转换成自定义异常try{int i 1/0;}catch (Exception e){throw new SystemException(Code.SYSTEM_TIMEOUT_ERR,服务器访问超时请重试!,e);}return bookDao.getById(id);}
八、SSM整合流程⭐
前面已经学了 Mybatis 、 Spring 和 SpringMVC 三个框架现在要整合这三个框架完成业务功能的简单开发。 SpringConfig配置类
Configuration
ComponentScan({com.itpan.service}) // 组件扫描 为防止spring和springMVC重复扫描只扫描到service
PropertySource({classpath:jdbc.properties}) // 加载数据库配置文件
Import({JdbcConfig.class, MybatisConfig.class}) // 导入配置文件
public class SpringConfig {
}
jdbcConfig配置类
public class JdbcConfig {Value(${jdbc.driver})private String driver;Value(${jdbc.url})private String url;Value(${jdbc.username})private String username;Value(${jdbc.password})private String password;// 管理第三方的bean供spring使用Beanpublic DataSource dataSource(){DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}
}jdbc.properties略
jdbc.drivercom.itpan.jdbc.Driver
jdbc.urljdbc:mysql//localhost:3306/ssm_db
jdbc.usernameroot
jdbc.passwordroot
MybatisConfig配置类
public class MybatisConfig {// 配置数据库连接池的bean方法的参数也是bean的自动装配Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean factoryBean new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);factoryBean.setTypeAliasesPackage(com.itpan.domain);return factoryBean;}// 配置扫描Dao包下的beanBeanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc new MapperScannerConfigurer();msc.setBasePackage(com.itpan.dao);return msc;}
}
ServletConfig配置类
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{SpringMVCConfig.class};}// 拦截路径Overrideprotected String[] getServletMappings() {return new String[]{/};}
}SpringMVC配置类
Configuration
ComponentScan({com.itpan.controller})
EnableWebMvc
public class SpringMVCConfig {
}九、SpringMVC 拦截器
见文章http://t.csdnimg.cn/JqJ6b