博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring FrameWork4(MVC + IOC)高速入门实例
阅读量:6040 次
发布时间:2019-06-20

本文共 6756 字,大约阅读时间需要 22 分钟。

  1. 使用Maven创建project并配置依赖项

              首先创建一个Maven Project

       

然后选择创建Maven webapp实例,当然也能够通过命令行方式创建Maven webapp的项目再转化并导入到MyEclipse中。

pom.xml中须要对于Spring依赖项进行配置:

4.0.0
wx.spring
wx.spring.helloworld
war
0.0.1-SNAPSHOT
wx.spring.helloworld Maven Webapp
http://maven.apache.org
wx.spring.helloworld
4.0.6.RELEASE
junit
junit
4.11
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}

2.框架配置(Spring MVC)

在本演示样例代码中,对于Spring MVC架构採取xml配置的方式,而对于IOC操作,採取Java Based Annotated方式。

l web.xml

web.xml是整个项目的整体配置文件,在该文件里须要制定项目Servlet的匹配方式以及整个项目的上下文的配置文件。在该web.xml文件里配置了一个Servlet,该ServletSpring MVC所须要的。而假设须要在Struts等其它框架中使用Spring,就须要声明一个listener。换言之,dispatcher-servletapplicationContext是应用于不同场景的同样的配置文件。

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name>Archetype Created Web Application</display-name>

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

</web-app>

2 dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan base-package="wx.spring.helloworld.controller" />

<bean

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix">

<value>/WEB-INF/views/</value>

</property>

<property name="suffix">

<value>.jsp</value>

</property>

</bean>

</beans>

3 applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan base-package="wx.spring.helloworld.controller" />

<bean

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix">

<value>/WEB-INF/views/</value>

</property>

<property name="suffix">

<value>.jsp</value>

</property>

</bean>

</beans>

3.代码

1 HelloWorldController

package wx.spring.helloworld.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

@Controller

public class HelloWorldController {

@RequestMapping("/hello")

public String hello(

@RequestParam(value = "name", required = false, defaultValue = "World") String name,

Model model) {

model.addAttribute("name", name);

return "helloworld";

}

}

2 /WEB-INF/views/helloworld.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Spring4 MVC -HelloWorld</title>

</head>

<body>

<h1>Hello : ${name}</h1>

</body>

</html>

3 MessagePrinter.java:服务接口类,详细的功能实现依赖于MessageService接口。

该类中的MessageService成员,会在执行时由Spring自己主动注入,而不须要自身初始化。

package wx.spring.helloworld.bean;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

@Component

public class MessagePrinter {

    private MessageService service;

    @Autowired

    public void setMessageService(MessageService service) {

        this.service = service;

    }

    public void printMessage() {

        System.out.println(this.service.getMessage());

    }

}

4 MessageService:接口类

package wx.spring.helloworld.bean;

public interface MessageService {

    String getMessage();

}

5 MyConfiguration:配置类

package wx.spring.helloworld.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import wx.spring.helloworld.bean.MessagePrinter;

import wx.spring.helloworld.bean.MessageService;

@Configuration

@ComponentScan(value="wx.spring.helloworld.test")

public class MyConfiguration {

    @Bean

    MessageService getMessageService() {

        return new MessageService() {

            public String getMessage() {

              return "Hello World!IOC&DI";

            }

        };

    }

    @Bean

    MessagePrinter getMessagePrinter(){

     return new MessagePrinter();

    }

}

6 Application

package wx.spring.helloworld.test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.annotation.*;

import wx.spring.helloworld.bean.MessagePrinter;

import wx.spring.helloworld.bean.MessageService;

import wx.spring.helloworld.config.MyConfiguration;

public class Application {

  public static void main(String[] args) {

      ApplicationContext context = 

          new AnnotationConfigApplicationContext(MyConfiguration.class);

      

      MessagePrinter printer = context.getBean(MessagePrinter.class);

      

      printer.printMessage();

  }

}

5.执行

首先执行mvn package命令将整个项目打包,然后右击选择在Tomcat中执行。最好设置下文件编译的输出:

      项目直接执行时,显示的是MVC的结果:

         

直接执行Main Application

     

你可能感兴趣的文章
Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode
查看>>
ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
查看>>
批量添加-fno-objc-arc
查看>>
二叉树的层序遍历
查看>>
os模块
查看>>
安装 matplotlib
查看>>
css伪类(:before和:after)
查看>>
react native TypeError network request failed
查看>>
PLSQL锁表之后改如何操作
查看>>
Sql注入、文件上传与手机品牌信息抓取解决方案
查看>>
SQLServer跨库查询--分布式查询[转载]
查看>>
django错误-NoReverseMatch at /admin/
查看>>
Laravel中的信息验证 和 语言包
查看>>
折半查找法(二分查找 java版)
查看>>
工作两周年—--个人知识体系梳理
查看>>
win2003开启telnet
查看>>
php配置文件php.ini中文详解
查看>>
关于Tomcat配置相关总结
查看>>
安装PDO_MYSQL遇到的问题:error: Cannot find MySQL header files under
查看>>
CocoaPods最新安装及跳过pod setup快速安装教程
查看>>