我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用java代码代替xml实现SSM

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用java代码代替xml实现SSM

本篇内容介绍了“如何使用java代码代替xml实现SSM”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    SpringBoot推荐开发者使用Java配置来搭建框架,SpringBoot中大量的自动化配置都是通过Java代码配置实现的,而不是XML配置,同理,我们自己也可以使用纯Java来搭建一个SSM环境,即在项目中不存在任何XML配置,包括web.xml

    环境要求:

    Tomact版本必须在7以上

    1.在IDEA中创建一个普通的maven项目

    如何使用java代码代替xml实现SSM

    在pom.xml加入项目中需要用到的依赖

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.xiao.ssm</groupId>    <artifactId>SSM-demo</artifactId>    <version>1.0-SNAPSHOT</version>    <packaging>war</packaging>    <properties>        <maven.compiler.source>8</maven.compiler.source>        <maven.compiler.target>8</maven.compiler.target>        <tomcat.version>2.2</tomcat.version>        <webserver.port>8888</webserver.port>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    </properties>    <dependencies>        <!--引入springMVC依赖-->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>5.2.12.RELEASE</version>        </dependency>        <!--引入servlet依赖-->        <!--scope作用域:           1.compile,默认的scope(作用域),表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布           2.provided,跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性           3.runtime,表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段           4.test,表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布           5.system,跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它        -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>            <version>4.0.1</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>2.2</version>        </dependency>    </dependencies>    <build>        <plugins>            <!-- tomcat7插件 -->            <plugin>                <groupId>org.apache.tomcat.maven</groupId>                <artifactId>tomcat7-maven-plugin</artifactId>                <version>${tomcat.version}</version>                <configuration>                    <port>${webserver.port}</port>                    <path>/${project.artifactId}</path>                    <uriEncoding>${project.build.sourceEncoding}</uriEncoding>                </configuration>            </plugin>        </plugins>    </build>    <repositories>        <repository>            <id>central</id>            <url>https://maven.aliyun.com/nexus/content/repositories/central</url>        </repository>    </repositories>    <pluginRepositories>        <pluginRepository>            <id>central</id>            <url>https://maven.aliyun.com/nexus/content/repositories/central</url>        </pluginRepository>    </pluginRepositories></project>

    2.添加Spring配置

    创建SpringConfig.java文件

    package com.xiao.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(basePackages = "com.xiao",useDefaultFilters = true,        excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)})public class SpringConfig {}

    3.添加SpringMVC配置

    创建SpringMVCConfig.java文件

    package com.xiao.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.FilterType;import org.springframework.stereotype.Controller;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;@Configuration//@ComponentScan(basePackages = "com.xiao",useDefaultFilters = true,//        excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)})@ComponentScan(basePackages = "com.xiao")public class SpringMVCConfig extends WebMvcConfigurationSupport {        @Override    protected void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("/js    @Override    protected void configureViewResolvers(ViewResolverRegistry registry) {        registry.jsp("/jsp/",".jsp");    }            @Override    protected void addViewControllers(ViewControllerRegistry registry) {        registry.addViewController("/hello3").setViewName("hello");    }            @Override    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {        FastJsonHttpMessageConverter converter=new FastJsonHttpMessageConverter();        converter.setDefaultCharset(Charset.forName("UTF-8"));        FastJsonConfig fastJsonConfig=new FastJsonConfig();        fastJsonConfig.setCharset(Charset.forName("UTF-8"));        converter.setFastJsonConfig(fastJsonConfig);        converters.add(converter);    }}

    配置web.xml

    创建WebInit.java文件

    package com.xiao.config;import org.springframework.web.WebApplicationInitializer;import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;import org.springframework.web.servlet.DispatcherServlet;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRegistration;public class WebInit implements WebApplicationInitializer {    @Override    public void onStartup(ServletContext servletContext) throws ServletException {        //首先来加载SpringMVC的配置文件        AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();        ctx.register(SpringMVCConfig.class);        //添加DispatcherServlet        ServletRegistration.Dynamic springmvc=servletContext.addServlet("springmvc",new DispatcherServlet(ctx));        //给DispatcherServlet添加路径映射        springmvc.addMapping("/");        //给DispatcherServlet添加启动时机        springmvc.setLoadOnStartup(1);    }}

    WebInit的作用类似于web.xml,这个类需要实现WebApplicationInitializer接口,并实现其方法,当项目启动时,onStartup方法会被自动执行,我们可以在这里进行项目初始化操作,如:加载SpringMVC容器,添加过滤器,添加Listener,添加Servlet等

    注:

    由于在onStartup里面只加载了springmvc配置,没有加载spring容器,如果要加载Spring容器

    方案一:

    修改springmvc配置,在配置的包扫描中也去扫描@Configuration注解

    推荐 方案二:

    去掉springConfig文件,讲所有的配置都放到springmvc里面

    5.测试

    5.1创建HelloController类

    package com.xiao.control;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController {    @GetMapping("/hello")    public String hello(){        return "hello";    }}

    运行结果:

    如何使用java代码代替xml实现SSM

    5.2创建HelloController2类

    package com.xiao.control;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HelloController2 {    @GetMapping("hello2")    public String hello2(){        return "hello";    }}

    运行结果:

    如何使用java代码代替xml实现SSM

    5.3路径映射

    如何使用java代码代替xml实现SSM

    6.JSON配置

    SpringMVC可以接收json参数,也可以返回json参数,这一切依赖于HttpMessageConverter

    HttpMessageConverter可以将一个json字符串转为对象,也可以将一个对象转为json字符串,实际上它的底层还是依赖具体的json库

    SpringMVC中默认提供了Jackson和gson的HttpMessageConverter,分别是:

    • MappingJackson2HttpMessageConverter

    • GsonHttpMessageConverter

    “如何使用java代码代替xml实现SSM”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    如何使用java代码代替xml实现SSM

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    如何使用java代码代替xml实现SSM

    本篇内容介绍了“如何使用java代码代替xml实现SSM”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot推荐开发者使用Ja
    2023-06-21

    java如何使用clone()代替new

    这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。使用clone()代替new
    2023-06-27

    如何使用PHP代码实现QQ代码

    要使用PHP代码实现QQ代码,你可以使用QQ互联开放平台提供的SDK来完成。以下是一个简单的示例代码:首先,你需要从QQ互联开放平台获取到应用的App ID和App Key。然后,你可以使用这些凭据初始化SDK。```phprequire
    2023-08-28

    如何使用java代码实现计算器

    这篇“如何使用java代码实现计算器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用java代码实现计算器”文章吧。运
    2023-06-30

    Java使用XML与注解方式实现CRUD操作代码

    使用XML实现CRUD操作灵活且可控,而注解方式更简洁、类型安全且性能更好。XML实现CRUD操作:使用DocumentBuilder创建XML文档,并构建XML树。使用DocumentBuilderFactory和DocumentBuilder解析XML文档,并获取元素。更新元素属性和文本内容,或删除元素。注解实现CRUD操作:使用JPA注解标记实体类和主键字段。使用EntityManager获取、修改和删除实体对象。比较:XML提供更大灵活性和控制,但注解更简便、类型安全且性能更好。注解方式是实现Ja
    Java使用XML与注解方式实现CRUD操作代码
    2024-04-02

    如何使用vimdiff代替svn diff的查看代码工具

    这篇文章给大家分享的是有关如何使用vimdiff代替svn diff的查看代码工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在linux下,直接使用svn diff命令查看代码的修改是很吃力的,于是在网上搜索
    2023-06-10

    使用java代码和伪代码实现插入排序

    插入排序介绍:相信大部分人都打过扑克牌,许多人喜欢发一张牌就拿一张牌到手上,并且按顺序来放好牌。开始时我们左手为空,牌在桌子上。然后我们每次从桌子上拿走一张牌并将它插入左手中的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。java
    使用java代码和伪代码实现插入排序
    2015-01-23

    java如何使用位运算代替乘除法

    这篇文章主要介绍了java如何使用位运算代替乘除法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。位运算代替乘除法在所有的运算中,位运算是最为高效的。因此,可以尝试使用位运算代
    2023-06-27

    如何用Java代码实现最近最少使用缓存

    这期内容当中小编将会给大家带来有关如何用Java代码实现最近最少使用缓存,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。怎么实现一个最近最少使用(LRU)的缓存。缓存可以通过哈希表来实现,然而为这个缓存增加
    2023-06-17

    Java如何获取 XML 解析器错误代码

    本文介绍了如何在Java中获取XML解析器错误代码,以帮助解决XML解析错误。使用SAXParser或DOMParser时,你可以通过getErrorCode()方法获取错误代码。本文还提供了常见的XML解析器错误代码及其描述,并指导你根据错误代码采取适当的措施。
    Java如何获取 XML 解析器错误代码
    2024-04-02

    使用CSS3来代替JS实现交互

    这篇文章给大家分享的是有关使用CSS3来代替JS实现交互的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。【CSS3和JS】对于CSS了解的同学都知道,CSS的实现是最底层的,在实现方式和性能上都不是,JS这种提供接
    2023-06-08

    java代码如何实现异步执行

    在Java中,可以使用多线程或者使用Java 8之后引入的CompletableFuture来实现异步执行。使用多线程:Thread thread = new Thread(() -> {// 异步执行的代码逻辑});thread.s
    2023-10-25

    Java如何应用矩阵代替循环

    今天小编给大家分享一下Java如何应用矩阵代替循环的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。应用矩阵代替循环 举个例
    2023-06-19

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录