Spring和SpringMVC

一、Spring的定义

SpringJava EE编程领域的一个轻量级开源框架,Spring是一个开源容器框架,它集成各类型的工具,通过核心的Bean factory实现了底层的类的实例化和生命周期的管理。

Spring有两个核心部分:IOCAop

①、 IOC: 控制反转,把创建对象过程交给 Spring 进行管理
②、 Aop: 面向切面,不修改源代码进行功能增强

 对于现阶段,大家理解Spring是一个Java开源框架接口,也是一个生态体系。其核心框架是Spring Framework,在此基础上又衍生出来Spring BootSpring CloudSpring Data、Spring Security等一系列优秀项目。

二、SpringMVC的定义

Spring MVC是Spring的一部分,Spring 出来以后,大家觉得很好用,于是按照这种模式设计了一个 MVC框架(一些用Spring 解耦的组件),主要用于开发WEB应用和网络接口,它是Spring的一个模块,通过Dispatcher Servlet, ModelAndView 和 View Resolver,让应用开发变得很容易,一个典型的Spring MVC应用开发分为下面几步:
首先通过配置文件声明Dispatcher Servlet:

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>com.qgd.oms.web.common.mvc.OmsDispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

通过配置文件声明servlet详情,如MVC resource,data source,bean等

    <mvc:resources mapping="/css/**/*" location="/static/css/" cache-period="21600"/>
    <mvc:resources mapping="/js/**/*" location="/static/js/" cache-period="21600"/>
    <mvc:resources mapping="/views/**/*.html" location="/static/views/" cache-period="21600"/>
    <mvc:resources mapping="/fonts/**/*" location="/static/fonts/"/>
    <mvc:resources mapping="/ueditor/**/*" location="/static/js/lib/ueditor/"/>
    <mvc:resources mapping="/img/**/*" location="/static/img/"/>

    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="validationQuery" value="${jdbc.validationQuery}"/>
        <property name="maxTotal" value="10"/>
        <property name="minIdle" value="5"/>
        <property name="maxIdle" value="10"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="testWhileIdle" value="true"/>
        <property name="testOnBorrow" value="true"/>
        <property name="poolPreparedStatements" value="true"/>
        <property name="maxOpenPreparedStatements" value="50"/>
    </bean>

    <bean id="configService" class="com.qgd.oms.web.common.service.ConfigService">
        <property name="configStore">
            <bean class="com.qgd.oms.web.common.service.impl.DbConfigStore">
                <property name="dataSource" ref="dataSource"/>
                    <property name="taskScheduler" ref="defaultScheduler"/>
                <property name="refreshInterval" value="30000"/>
            </bean>
        </property>
    </bean>

若需添加其它功能,如security,则需添加对应配置:

    <http pattern="/css/**/*" security="none"/>
    <http pattern="/js/**/*" security="none"/>
    <http pattern="/views/**/*.html" security="none"/>
    <http pattern="/fonts/**/*" security="none"/>
    <http pattern="/ueditor/**/*" security="none"/>
    <http pattern="/img/**/*" security="none"/>

    <http use-expressions="true" entry-point-ref="omsAuthenticationEntryPoint">
        <logout logout-url="/omsmc/authentication/logout/*" success-handler-ref="omsLogoutSuccessHandler"></logout>
        <intercept-url pattern='/omsmc/authentication/login*' access="permitAll" />
        <intercept-url pattern='/ms/**/*' access="permitAll" />
        <intercept-url pattern='/**' access="authenticated" />
        <!--<security:form-login />-->
        <custom-filter ref="omsUsernamePasswordAuthenticationFilter" position="FORM_LOGIN_FILTER" />
        <remember-me services-ref="omsRememberMeServices" key="yfboms"/>
        <csrf disabled="true"/>
    </http>

增加业务代码,如controller,service,model等,最后生成war包,通过容器进行启动

三、MVC的定义

MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 即模型(Model) 、视图(View)、控制器(Controller)。

模型( Model
模型是用于处理数据逻辑的部分。
所谓数据逻辑,也就是数据的映射以及对数据的增删改查, Bean DAO (data access object,数据访问对象)等都属于模型部分。
视图(View)
视图负责数据与其它信息的显示,也就是给用户看到的页面。
html JSP 等页面都可以作为视图。
控制器(controller)
控制器是模型与视图之间的桥梁,控制着数据与用户的交互。
控制器通常负责从视图读取数据,处理用户输入,并向模型发送数据,也可以从模型中读取数据,再发送给视图,由视图显示。

四、创建一个Spring项目

  •  用Idea新建一个项目,选择Spring(Legacy),记得勾选Create empty spring-config.xml。

注意,一些同学安装的idea没有Spring(Legacy),需要以下几个步骤:

1、去plugin里面下载插件:Spring Assistant。

2、windows下按住Ctrl + Shift + Alt + /,弹出,选择第一个registry,mac下按住option+command+Shift+/弹出并选择registry。

3、找到:javaee,legacy.projext.wizard并勾选。

4、重启IDEA即可。

  • 项目名字及项目目录 

  •  在src目录下新建两个类:MyBook和Main类:

MyBook中写入以下代码

该类为一个基础的bean类,包含get、set方法,带参数构造器以及空参构造器。

public class MyBook {
    private String bookName;
    private String author;

    public MyBook(String bookName, String author) {
        this.bookName = bookName;
        this.author = author;
    }

    public MyBook() {
    }

    public String getBookName() {
        return bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
    
}

在spring-config.xml文件中的<beans>标签中添加以下bean标签

    <bean id="MyBook" class="MyBook">
        <property name="bookName" value="活着"/>
        <property name="author" value="余华"/>
    </bean>

 在Main中加入以下代码

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.ApplicationContext;

/**
 * @author Tonny
 * @version 2021.2
 * @date 2023/6/9 23:52
 */
public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

        MyBook myBook = (MyBook) context.getBean("MyBook");

        System.out.println("书名:"+myBook.getBookName()+"\n"+"作者:"+myBook.getAuthor());
    }
}

然后便可以运行Main函数 

 若想深入学习Spring并创建编写项目的同学,可以参考一下链接:GitHub - Laverrr/bookstore: 网上书店(登陆注册,最近浏览,购物车,商品列表,商品详情)基于SSM框架开发的JavaWeb应用

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值