当前位置: 首页 > news >正文

微信开发者中心网站seo入门

微信开发者中心,网站seo入门,巴州移动网站建设,成都人才网文章目录 1. SpringMVC简介2. SpringMVC入门案例文件结构第一步#xff1a;坐标导入第二步#xff1a;创建SpringMVC容器的控制器类第三步#xff1a;初始化SpringMVC环境#xff0c;设定Spring加载对应的bean第四步#xff1a;初始化Servlet容器#xff0c;加载SpringMV… 文章目录 1. SpringMVC简介2. SpringMVC入门案例文件结构第一步坐标导入第二步创建SpringMVC容器的控制器类第三步初始化SpringMVC环境设定Spring加载对应的bean第四步初始化Servlet容器加载SpringMVC环境并设置SpringMVC技术请求的处理测试总结使用到的一些注解及入门程序开发总结 3. 入门案例工作流程分析启动服务器初始化过程单次请求过程 4. bean的加载与控制方式一方式二将Spring下的bean也加载到Servlet容器中小结 1. SpringMVC简介 数据层框架 MyBatis 表现层框架 Servlet-SpringMVC 即SpringMVC属于一种表现层框架 简介 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 优点 使用简单开发便捷相比于Servlet灵活性强 2. SpringMVC入门案例 文件结构 第一步坐标导入 pom.xml文件中添加一些依赖这些依赖版本之间是相互联系的如果配错或配太低都不行 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspringmvc_01_test/artifactIdpackagingwar/packagingversion1.0-SNAPSHOT/versionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.13.RELEASE/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependencydependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-api/artifactIdversion10.1.7/version/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/plugin/plugins/build/project第二步创建SpringMVC容器的控制器类 控制器类来指定对应的访问网址什么的Controller标明这是一个beanRequestMapping指定访问路径ResponseBody指定返回不做任何解析和处理 package com.demo.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;Controller public class UserController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(User save...);return {module: springmvc};} }第三步初始化SpringMVC环境设定Spring加载对应的bean 类似于Spring的配置通过Configuration指定为配置类通过ComponentScan来指定扫描的控制器范围 package com.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;Configuration ComponentScan(com.demo.controller) public class SpringMvcConfig { }第四步初始化Servlet容器加载SpringMVC环境并设置SpringMVC技术请求的处理 这里相当于是一些固定的写法 package com.demo.config;import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;public class ServletContainerInitConfig extends AbstractDispatcherServletInitializer { // 加载SpringMVC容器配置Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;} // 设置哪些请求归属SpringMVC处理Overrideprotected String[] getServletMappings() {return new String[]{/};} // 加载Spring配置Overrideprotected WebApplicationContext createRootApplicationContext() {return null;} }测试 配置Run Configurations 然后启动在浏览器里输入http://localhost/save可看到结果 总结使用到的一些注解及入门程序开发总结 Controller类注解放在SpringMVC控制器上方作用是设定SpringMVC的核心控制器bean RequestMapping方法注解放在SpringMVC控制器方法定义上方作用是设置当前控制器方法的请求路径 ResponseBody方法注解 放在SpringMVC控制器方法定义上方作用是设置当前控制器方法相应内容为当前返回值无需解析 3. 入门案例工作流程分析 启动服务器初始化过程 服务器启动执行ServletContainerInitConfig类初始化Web容器执行createServletApplicationContext方法创建了WebApplicationContext对象加载SpringMVCConfig执行ComponentScan对应的bean加载UserController也就是加载扫描包下注释了Controller的那些类每个RequestMapping的名称都对应一个具体的方法注意如图中/save-save()的映射实际上并不是放在每一个bean中管理的而是由SpringMVC放在统一的地方进行管理的执行getServletMappings方法定义所有的请求都通过SpringMVC 单次请求过程 发送请求localhost/saveweb容器发现所有的请求都经过SpringMVC上面的6定义了所有的请求都经过SpringMVC将请求交给SpringMVC处理解析请求路径/save由/save匹配执行对应的方法save()执行save()检测到有ResponseBody直接将save()方法的返回值作为响应请求体返回给请求方 4. bean的加载与控制 SpringMVC相关的bean是表现层的bean SpringMVC加载的bean对应的包均在com.xx.controller包内 Spring控制的bean 业务beanService功能beanDataSource等方式一Spring加载的bean设定扫描范围为com.xx排除掉controller包内的bean方式二Spring加载的bean设定扫描范围为精准范围例如service, dao包等方式三不区分Spring和SpringMVC的环境加载到同一个环境中 方式一 指定大的扫描类型在其中通过excludeFilters排除掉一些东西具体写法如下我们需要再excludeFilters里边指定清楚过滤的规则 package com.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.stereotype.Controller;Configuration ComponentScan(value com.demo,excludeFilters ComponentScan.Filter(type FilterType.ANNOTATION,classes Controller.class) ) public class SpringConfig { }执行一下测试看能否再拿到注释了Controller的UserController类注意在测试之前要注释掉SpringMvcConfig上的Configuration package com.demo;import com.demo.config.SpringConfig; import com.demo.controller.UserController; import com.demo.domain.User; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig.class);UserController userController ctx.getBean(UserController.class);System.out.println(userController);} }执行测试代码会报错 如果取消掉这个过滤规则再执行测试代码会发现不会报错而是会打印拿到的实例信息。通过测试说明使用excludeFilters这种方法是可以过滤包的 解释一下为什么要注释掉SpringMvcConfig上的Configuration因为我们在SpringConfig中扫描了com.demo下的所有包在SpringMvcConfig上我们使用Configuration注解了它是一个配置类那么这个配置就会被扫描它所包括的所有bean也会被加载进来如果将SpringMvcConfig放到com.demo下而不注释也可以解决这个问题老师在视频里是这么讲的但是我自己试了一下好像把SpringMvcConfig放到com.demo下不注释也会被加载进来不知道是不是我的问题 方式二 我们使用mybatis技术来进行开发这里的com.demo.dao是可以不写的因为mybatis通过自动代理的技术可以扫到com.demo.dao下的bean在Mybatis的MapperScannerConfigurer中有设置msc.setPackage(...) 但是假如我们使用JDBC的技术来进行开发我们就必须扫描com.demo.dao下的包否则我们就没有数据层的beanSpring下JDBC的开发可以看一下这篇文章Spring jdbc数据库管理所以对于com.demo.dao的扫描还是建议写这样通用性比较好如果不写的话通用性就会比较差 package com.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;Configuration ComponentScan({com.demo.service, com.demo.dao}) public class SpringConfig { }将Spring下的bean也加载到Servlet容器中 修改ServletContainersInitConfig类中的内容加上加载Spring配置的内容 package com.demo.config;import com.demo.controller.SpringConfig; import com.demo.controller.SpringMvcConfig; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;public class ServletContainerInitConfig extends AbstractDispatcherServletInitializer { // 加载SpringMVC容器配置Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;} // 设置哪些请求归属SpringMVC处理Overrideprotected String[] getServletMappings() {return new String[]{/};} // 加载Spring配置Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext ctx new AnnotationConfigWebApplicationContext();ctx.register(SpringConfig.class);return ctx;} }在Servlet容器中加载SpringMVC和Spring配置还有一个简化的类及写法以下是以上的简化开发 package com.demo.config;import com.demo.controller.SpringConfig; import com.demo.controller.SpringMvcConfig; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;public class ServletContainerInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}Overrideprotected String[] getServletMappings() {return new String[]{/};} }小结
http://www.zqtcl.cn/news/743359/

相关文章:

  • 网页设计模板网站推荐互联网创业项目网
  • 北京做网站的大公司动态列线图怎么制作网页
  • 江西省城乡和住房建设部网站google play应用商店
  • 网站前台设计过程泰安千橙网络科技有限公司
  • 可以做来电名片的网站网站开发频道构架
  • 网站备案没通过不了宣传片拍摄的意义
  • 专业提供网站建设服务包括做解析视频网站违法莫
  • 天津工程建设协会网站wordpress 自由评论
  • 南同网站建设hr系统管理软件排名
  • 水果网店网站建设策划书做企业形象网站
  • 小清新博客网站软件公司有哪些部门
  • 企业网站托管一年多少钱想学电商运营在哪里学
  • 网站建设自评报告手机电商平台怎么做的
  • 安阳网站建设优化免费的免抠图素材网站
  • 网站主机有什么用seo网站课程
  • 网站关键词优化软件网站的二次开发
  • 网站建设技术服务费怎么入账杭州网站推广与优化
  • 咨询类网站建设方案书重庆360网络推广
  • 简单网站模板下载wordpress调用数据库字段
  • 万网空间最多放几个网站好的网站首页的特点
  • .net做网站安全吗wordpress取消邮件验证
  • 沈阳做网站推广唐山网站怎么做seo
  • 网站备案说主体已注销刷关键词指数
  • 学做网站教学百度网盘动软代码生成器 做网站
  • 长辛店网站建设手机评测网站
  • 网站建设公司选哪个好软件开发
  • 隐形眼镜网站开发的经济效益莘县网站开发
  • 开创集团网站建设如何在学校网站上做链接
  • 上海优秀网站设计百度投诉中心人工电话号码
  • 卖建材的网站有哪些跨境电商工具类产品的网站