spring快速开始

2020-12-13 16:27

阅读:247

YPE html>

标签:cto   mysq   按钮   bash   down   ISE   port   repos   val   

开始spring应用

创建app项目

创建java application项目,设目录结构:

+ lib/
+ src/
    - beans.xml
    - Message.java
    - Main.java

beans.xml文件名可以任意,后面是通过传递xml名称给ApplicationContext类查找的。

添加库

先从官网下载spring库:https://repo.spring.io/release/org/springframework/spring/

使用ide添加(add as library)以下几个常用到的spring库(aop、aspects是使用切面时需要的):

  • core
  • context
  • beans
  • expression
  • aop
  • aspects

由于spring需要common logging库,官网下载:http://commons.apache.org/proper/commons-logging/download_logging.cgi

添加到ide中:

  • common logging

代码

添加java类,作为bean。

// src/Message.java
public class Message {
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = "this mssage is : " + msg;
    }

}

添加xml文件,配置bean。


添加java类,作为主类,从xml配置文件中,获取bean。

// src/Main.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

    public static void main(String[] args){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Message msg = (Message) context.getBean("msg1");
        System.out.println(msg.getMsg());
    }
}

运行主类。


开始spring网页

创建web项目

直接使用idea创建web项目向导,可减少一些idea的配置,这是没必要的学习成本。

New Project -> Java Enterprise -> Web Application

也可直接选Spring里的配置,这将会自动下载配置好一些需要的spring库。

目录结构:

+ lib/
+ src/
    + main/
        + java/
            + com/
                + yww/
                    - HomeController.java
                    - Message.java
+ web/
    + WEB-INF/
        + jsp/
            - home.jsp
        - applicationContext.xml
        - dispatcher-servlet.xml
        - web.xml
    - index.jsp

com.yww.HomeController.java是自己创建的控制器,做项目时,应归到一个controller文件夹便于管理。
applicationContext.xml文件不是必须的,用来配置bean,可以在web.xml中除去这部分不想要的
applicationContext.xml文件中可以配置bean,因其在web.xml文件中标签下配置好了这个文件,故不必像前面app项目中,使用ClassPathXmlApplicationContext的一系列上下文获取bean的xml配置文件,再去获取bean

添加库

为了使用java ee,需安装idea企业版。

相比应用,网页需要添加web、webmvc库。

添加库到lib文件夹:

  • common logging
  • core
  • context
  • beans
  • expression
  • aop
  • aspects
  • web
  • webmvc

选取所有库,右键add as library

配置

  • 设置代码路径:File -> Project Structure -> Modules -> 右键选中项目路径src/main/java/,选择Sources。

  • 配置输出:File -> Project Structure -> Artifacts -> + -> Web Application:Exploded -> From Modules...

  • 修复问题(打包时添加lib):File -> Project Structure -> Problems -> Fix,就会自动添加修复。

  • 为了直接在idea中运行调试,配置idea的tomcat:Run -> Edit Configurations... -> + -> Tomcat Server -> local -> Application server的Configure... -> Tomcat_Home选择自己下载的Tomcat的目录。

  • web.xml*.form改为/,否则只会拦截*.form结尾的请求。

如果需要部署到自己的tomcat服务器上,需要配置打包为war的配置。

  • 打包war配置:File -> Project Structure -> Artifacts -> + -> Web Application:Archive -> From ‘xxx‘,从之前的Exploded打包成war。
  • 打包war:Build -> Build Artifacts... -> xxx archive -> build。

Project Structure -> Artifacts的配置时,先创建Web Application:Exploded(因为可以从Modules中生成),再创建Web Application:Archive(因为可以直接从Exploded中生成)。

代码

tomcat会读取web.xml进行配置,其中包含了spring的DispatcherServlet路径处理的servlet。


contextConfigLocation/WEB-INF/applicationContext.xmlorg.springframework.web.context.ContextLoaderListenerdispatcherorg.springframework.web.servlet.DispatcherServlet1dispatcher/

配置,开启组件扫描,配置view视图解析器解析的前后缀。


配置bean,将Message.java类放入com/yww/目录下,配置bean的文件applicationContext.xml


作为bean的Message类。

// src/main/java/com/yww/Message.java
package com.yww;

public class Message {
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = "this mssage is : " + msg;
    }

}

控制器,设置请求的路径映射,返回渲染的视图名称的字符串,spring会自动使用上面的xml配置指定的后缀.jsp添加后,寻找符合的jsp文件(如此处的home.jsp)。

// src/main/java/com/yww/HomeController.java
package com.yww;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/home")
public class HomeController {
    @RequestMapping(method = RequestMethod.GET)
    public String printHome(ModelMap model){
        model.addAttribute("msg", "this is a page!");

        return "home";
    }
}

渲染视图,通过控制器返回的字符串查找匹配的视图。



Title

${msg}

运行

配置了idea中的tomcat配置,即可直接点击运行按钮运行,在浏览器中输入:http://localhost:8080/ 或者 http://localhost:8080/home ,即可查看。

或配置了打包war,先将war放在tomcat目录/webapps/下,再手动运行tomcat目录/bin/startup.sh启动tomcat,tomcat会自动部署该web应用,最后打开浏览器输入:http://localhost:8080/ 。


Maven快速开始

创建maven的spring项目

下载Maven,使用命令创建webapp:

mvn archetype:generate -DarchetypeArtactId="maven-archetype-webapp" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4"

目录结构:

+ src/
    + main/
        + java/
            + com/
                + yww/
                    - HomeController.java
                    - Message.java
        + resources/
        + webapp/
            + WEB-INF/
                + jsp/
                    - home.jsp
            - applicationContext.xml
            - dispatcher-servlet.xml
            - web.xml
        - index.jsp
- pom.xml

代码

其它的文件都同不使用maven管理项目的一样,只是目录结构有所不同。

pom.xml是maven的配置文件。


4.0.0com.yww
  demo
  1.0-SNAPSHOTwardemo Maven Webapphttp://www.example.comUTF-81.81.8commons-logging
      commons-logging
      1.2org.springframework
      spring-core
      5.2.0.RELEASEorg.springframework
      spring-context
      5.2.0.RELEASEorg.springframework
      spring-beans
      5.2.0.RELEASEorg.springframework
      spring-expression
      5.2.0.RELEASEorg.springframework
      spring-aop
      5.2.0.RELEASEorg.springframework
      spring-aspects
      5.2.0.RELEASEorg.springframework
      spring-web
      5.2.0.RELEASEorg.springframework
      spring-webmvc
      5.2.0.RELEASEjunit
      junit
      4.11test

此处将的所有删除了,也可以正常打包构建项目。

不同与之前的bean.xml配置文件,这里需要使用包名限定。

web.xml文件同之前配置。

控制器中获取bean(自动连线需要导Autowired包)。

package com.yww;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.beans.factory.annotation.Autowired;

@Controller
@RequestMapping("/home")
public class HomeController {

    @Autowired
    public Message msg1;

    @RequestMapping(method = RequestMethod.GET)
    public String printHome(ModelMap model){
        String str1 = msg1.getMsg();
        model.addAttribute("msg", "this is a page! gradle " + str1);

        return "home";
    }
}

打包运行

在与pom.xml同级目录下,使用命令下载依赖的库并打包成war:

mvn install

target/目录下的war文件放入tomcat/webapps/中运行。


Gradle快速开始

创建gradle目录结构

下载Gradle,执行命令创建web项目:

gradle init

目录结构:

+ src/
    + main/
        + java/
            + com/
                + yww/
                    - HomeController.java
                    - Message.java
        + resources/
        + webapp/
            + WEB-INF/
                + jsp/
                    - home.jsp
            - applicationContext.xml
            - dispatcher-servlet.xml
            - web.xml
        - index.jsp
- build.gradle

代码

未列出的代码皆同上。

build.gradle是gradle管理项目的配置文件。

// build.gradle
plugins {
    id 'java'
    id 'war'
}

group = 'com.yww'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8

ext{
    springVersion = '5.2.0.RELEASE'
}

repositories {
    mavenCentral()
}

dependencies {
    compile "org.springframework:spring-core:$springVersion"
    compile "org.springframework:spring-context:$springVersion"
    compile "org.springframework:spring-beans:$springVersion"
    compile "org.springframework:spring-expression:$springVersion"
    compile "org.springframework:spring-aop:$springVersion"
    compile "org.springframework:spring-aspects:$springVersion"
    compile "org.springframework:spring-web:$springVersion"
    compile "org.springframework:spring-webmvc:$springVersion"

    testCompile "junit:junit:4.12"
    compile "org.springframework:spring-jdbc:$springVersion"
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.15'
}

打包运行

在与build.gradle同级目录下,执行命令构建打包war:

gradle build

build/lib/目录下的war文件放入tomcat运行。


spring快速开始

标签:cto   mysq   按钮   bash   down   ISE   port   repos   val   

原文地址:https://www.cnblogs.com/maplesnow/p/11619716.html


评论


亲,登录后才可以留言!