首页 > 作文

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

更新时间:2023-04-04 01:33:04 阅读: 评论:0

目录
1.在idea中创建一个普通的maven项目2.添加spring配置3.添加springmvc配置5.测试5.1创建hellocontroller类5.2创建hellocontroller2类5.3路径映射6.json配置7.总结

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="/d/file/titlepic/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>        <webrver.port>8888</webrver.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.relea</version>        </dependency>        <!--引入rvlet依赖-->        <!--scope作用域:           1.compile,默认的scope(作用域),表示 dependency 都可以在生命什么什么像什么什么造句周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布           2.provided,跟compile相似,但是表明了dependency 由jdk或者容器提供,例如rvlet ap和一些java ee apis。这个scope 只能作用在编译和测试时,同时没有传递性           3.runtime,表示dependency不作用在编译时,但会作用在运行和测试时,如jdbc驱动,适用运行和测试阶段           4.test,表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布           5.system,跟provided 相似,但是在系统中要以外部jar包的形式提供,maven不会在repository查找它        -->        <dependency>            <groupid>javax.rvlet</groupid>            <artifactid>javax.rvlet-api</artifactid>            <version>4.0.1</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupid>javax.rvlet.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>${webrver.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;/** * @author xiaoss * @configuration注解标识该类是一个配置类,作用类似于:applicationcontext.xml文件 * @componentscan注解标识配置包扫描,udefaultfilters表示使用默认的过滤器,excludefilters里面的配置表示除去controller里面的注解, * 即项目启动时候,spri休要丢人现眼ng容器只扫描除了controller类之外的所有bean * @date 2021年10月29日 16:43 */@configuration@componentscan(bapackages = "com.xiao",udefaultfilters = true,        excludefilters = {@componentscan.filter(type = filtertype.annotation,class = 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.rvlet.config.annotation.resourcehandlerregistry;import org.springframework.web.rvlet.config.annotation.viewresolverregistry;import o生物机电rg.springframework.web.rvlet.config.annotation.webmvcconfigurationsupport;/** * @author xiaoss * @date 2021年10月29日 16:56 */@configuration//@componentscan(bapackages = "com.xiao",udefaultfilters = true,//        excludefilters = {@componentscan.filter(type = filtertype.annotation,class = controller.class)})@componentscan(bapackages = "com.xiao")public class springmvcconfig extends webmvcconfigurationsupport {    /**     * 配置静态资源过滤,相当于   <mvc:resources mapping="/**" location="/"></>     * @param registry     */    @override    protected void addresourcehandlers(resourcehandlerregistry registry) {        registry.addresourcehandler("/js/**").addresourcelocations("classpath:/");    }    /**     * 配置视图解析器     * @param registry     */    @override    protected void configureviewresolvers(viewresolverregistry registry) {        registry.jsp("/jsp/",".jsp");    }        /**     * 路径映射     * @param registry     */    @override    protected void addviewcontrollers(viewcontrollerregistry registry) {        registry.addviewcontroller("/hello3").tviewname("hello");    }        /**     * json转换配置     * @param converters     */    @override    protected void configuremessageconverters(list<httpmessageconverter<?>> converters) {        fastjsonhttpmessageconverter converter=new fastjsonhttpmessageconverter();        converter.tdefaultchart(chart.forname("utf-8"));        fastjsonconfig fastjsonconfig=new fastjsonconfig();        fastjsonconfig.tchart(chart.forname("utf-8"));        converter.tfastjsonconfig(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.rvlet.dispatcherrvlet;import javax.rvlet.rvletcontext;import javax.rvlet.rvletexception;import javax.rvlet.rvletregistration;/** * @author xiaoss * @date 2021年10月29日 17:13 */public class webinit implements webapplicationinitializer {    @override    public void onstartup(rvletcontext rvletcontext) throws rvletexception {        //首先只有你黄绮珊来加载springmvc的配置文件        annotationconfigwebapplicationcontext ctx=new annotationconfigwebapplicationcontext();        ctx.register(springmvcconfig.class);        //添加dispatcherrvlet        rvletregistration.dynamic springmvc=rvletcontext.addrvlet("springmvc",new dispatcherrvlet(ctx));        //给dispatcherrvlet添加路径映射        springmvc.addmapping("/");        //给dispatcherrvlet添加启动时机        springmvc.tloadonstartup(1);    }}

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

注:

由于在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;/** * @author xiaoss * @date 2021年10月29日 17:00 */@restcontrollerpublic 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;/** * @author xiaoss * @date 2021年10月29日 22:17 */@controllerpublic 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,分别是:

mappingjackson2httpmessageconvertergsonhttpmessageconverter

7.总结

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

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

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 01:33:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/b083ca0011c7c6aebfa69412623c1505.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用java代码代替xml实现SSM教程.doc

本文 PDF 下载地址:使用java代码代替xml实现SSM教程.pdf

标签:项目   测试   用在   容器
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图