iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用java代码代替xml实现SSM教程
  • 199
分享到

使用java代码代替xml实现SSM教程

2024-04-02 19:04:59 199人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1.在idea中创建一个普通的Maven项目2.添加spring配置3.添加springMVC配置5.测试5.1创建HelloController类5.2创建HelloContr

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

环境要求:

ToMact版本必须在7以上

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

在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);
    }
}

4.配置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;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
}

运行结果:

5.2创建HelloController2类


package com.xiao.control;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController2 {
    @GetMapping("hello2")
    public String hello2(){
        return "hello";
    }
}

运行结果:

5.3路径映射

6.JSON配置

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

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

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

  • MappingJackson2HttpMessageConverter
  • GsonHttpMessageConverter

7.总结

1.本项目需要在idea中配置外部的tomact才可运行

2.自己也尝试在pom.xml中配置tomact插件,最后发现不行

3.使用mave插件打包不行,因为他会找web.xml,所以找不到就会打包失败

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用java代码代替xml实现SSM教程

本文链接: https://www.lsjlt.com/news/159394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 使用java代码代替xml实现SSM教程
    目录1.在IDEA中创建一个普通的maven项目2.添加Spring配置3.添加SpringMVC配置5.测试5.1创建HelloController类5.2创建HelloContr...
    99+
    2024-04-02
  • 如何使用java代码代替xml实现SSM
    本篇内容介绍了“如何使用java代码代替xml实现SSM”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot推荐开发者使用Ja...
    99+
    2023-06-21
  • 使用JavaConfig代替xml实现Spring配置操作
    目录JavaConfig代替xml实现Spring配置简单实体类JavaConfig配置类测试类脱离xml用JavaConfig配置Spring情况一情况二JavaConfig代替x...
    99+
    2024-04-02
  • Java ClassLoader虚拟类实现代码热替换的示例代码
    目录总结ClassLoader 虚拟类方法实现代码热替换实现改进思考总结 类加载器是负责加载类的对象。类ClassLoader是一个抽象类。给定类的全限定类名,类加载器应尝试查找或生...
    99+
    2024-04-02
  • Android 代码中的XML怎么利用控件进行代替
    本篇文章给大家分享的是有关Android 代码中的XML怎么利用控件进行代替,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现代码:Button btn = new Butto...
    99+
    2023-05-31
    android roi xml
  • 使用SSM+Layui+Bootstrap实现汽车维保系统的示例代码
    本项目主要实现对汽车维修厂的信息化管理功能,主要包含三个角色:管理员,维修师傅,客户。实现的主要功能包含用户管理、配置管理、汽车管理、故障管理、供应商管理、配件管理、维修订单管理、统...
    99+
    2024-04-02
  • 如何使用PHP代码实现QQ代码
    要使用PHP代码实现QQ代码,你可以使用QQ互联开放平台提供的SDK来完成。以下是一个简单的示例代码:首先,你需要从QQ互联开放平台...
    99+
    2023-08-28
    PHP
  • java如何使用clone()代替new
    这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。使用clone()代替new...
    99+
    2023-06-27
  • 使用CSS3来代替JS实现交互
    这篇文章给大家分享的是有关使用CSS3来代替JS实现交互的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。【CSS3和JS】对于CSS了解的同学都知道,CSS的实现是最底层的,在实现方式和性能上都不是,JS这种提供接...
    99+
    2023-06-08
  • java动态代理实现代码
    目录1、代理模式2、动态代理3、原理研究4、应用5、总结1、代理模式 代理模式是常用的设计模式之一,也是开发中常见的设计模式。 简单的描述一下,代理模式就是将实现类隔离开,比如你想给...
    99+
    2024-04-02
  • OpenPDF使用教程及样例代码
    使用OpenPDF生成pdf文档。 Java生成PDF文档的三方库 iText:仅限于仅限于个人用途或者开源项目,商业使用需要收费 OpenPDF:基于iText的一个分支发展而来,商业友好 A...
    99+
    2023-09-10
    java
  • React代码的使用方法教程
    本篇内容介绍了“React代码的使用方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 仅对一个条...
    99+
    2024-04-02
  • java中replaceAll替换圆括号实例代码
    前言 在手写sql的时候,根据参数处理查询条件. select * from staff where 1 = 1 and staff_id in ($staffI...
    99+
    2024-04-02
  • Java正则替换手机号代码实例
    在日常生活中,我们经常会遇到将一个手机号的4-7位字符串用正则表达式替换为为星号“*”。这是出于对安全性和保护客户隐私的考虑将程序设计成这样的。下面我们就来看看具体代码。package Test0914;public class Mobil...
    99+
    2023-05-31
    java 正则表达式 ava
  • 如何使用java代码实现计算器
    这篇“如何使用java代码实现计算器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用java代码实现计算器”文章吧。运...
    99+
    2023-06-30
  • SSM+微信小程序实现物业管理系统及实例代码
    目录项目描述运行环境项目编号:BS-XCX-003 ssm微信小程序物业管理系统,有网站后台管理系统 项目描述 微信小程序物业管理系统,微信小程序端包括以下几个模块: 社区公告、报修...
    99+
    2024-04-02
  • java实现线程代码怎么写
    在Java中,可以使用以下两种方式实现线程: 继承Thread类 public class MyThread extends Th...
    99+
    2023-10-28
    java
  • Java线程代码的实现方法
    一、线程Java代码实现1.继承Thread声明Thread的子类public class MyThread extends Thread { public void run(){ System.out.println("MyThread...
    99+
    2023-05-31
    线程 代码 java
  • 使用字符代替圆角尖角的方法教程
    本篇内容介绍了“使用字符代替圆角尖角的方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、字体与字符显示的关系这里左右方向的尖角,字体...
    99+
    2023-06-08
  • Java多线程CyclicBarrier的实现代码
    介绍 CyclicBarrier允许一组线程在到达某个栅栏点(common barrier point)互相等待,直到最后一个线程到达栅栏点,栅栏才会打开,处于阻塞状态的线程恢复继续...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作