Gradle入门到精通(四)- IDEA创建JavaSE、JavaWeb工程

接上一篇Gradle入门到精通(三)- 配置文件build.gradle

 一、JavaSE工程

创建一个JaveSE的Gradle工程即可,与之前创建Gradle工程一样,没有区别,如下图:

双击右边Gradle projects窗口jar进行打包,如下图:

案例如下:

build.gradle

group 'com.etbird'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

/**
 * 指定所使用的仓库,
 *
 * mavenCentral()表示使用中央仓库,此项目中所需要的jar包都会默认从中央仓库下载到本地指定目录下。
 */
repositories {
    mavenLocal()
    mavenCentral()
}

/**
 * gradle工程所有jar包的坐标都在dependencies属性内定义;
 * 每一个jar包的坐标由三个基本元素组成:group、name 、version,与Maven对应
 * testCompile该jar包的作用域,这里是表示该jar包在测试的时候起作用
 * 我们在gradle里面添加坐标的时候都要带上jar包的作用域
 */
dependencies {
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.18'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.springframework', name: 'spring-context', version: '5.3.3'
}

 UserDao.java

package com.etbird.dao;

import com.etbird.domain.User;

import java.util.List;

public interface UserDao {
    public List<User> findAll();
}

 

UserDaoImpl.java 

package com.etbird.dao.impl;

import com.etbird.dao.UserDao;
import com.etbird.domain.User;

import java.util.List;

public class UserDaoImpl implements UserDao {
    @Override
    public List<User> findAll() {
        System.out.println("列表查询成功...");
        return null;
    }
}

 

User.java

package com.etbird.domain;

import lombok.Data;

@Data
public class User {
    private Integer userId;
    private String userName;
}

 

bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd
                http://www.springframework.org/schema/aop
                http://www.springframework.org/schema/aop/sping-aop.xsd">
    <bean id="userDao" class="com.etbird.dao.impl.UserDaoImpl"></bean>
</beans>

 

UserTest.java

package com.etbird.test;

import com.etbird.dao.UserDao;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserTest {
    @Test
    public void userTest(){
        //Spring容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
        //从容器中获取对象
        UserDao userDao = ctx.getBean(UserDao.class);
        //调用方法
        userDao.findAll();
    }
}

 

二、JavaWeb工程

同上(注:这里只是提供一种实现方法

2.1、创建一个JaveSE的Gradle工程即可,与之前创建Gradle工程一样,没有区别,如下图:

2.2、点击Next,输入GroupId、ArtifactId、Version,如下图:

2.3、点击Next,与之前没有区别,如下图

2.4、点击Next,如下图

2.5、点击Finish,完成。

2.6、如何修改为web目录结构?

2.6.1、根据规范,添加如下目录及文件:

src/main/webapp

src/main/webapp/WEB-INF

src/main/webapp/WEB-INF/web.xml

web.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>rbac1.0</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2.6.2、在build.gradle文件中添加如下内容,让IDEA识别为web工程,即把java se工程变为了java web工程

apply plugin: 'war'

如下图:

2.6.3、写几个文件测试一下

这里我们写一个基于SpringMVC的简单案例Hello:

① 在build.gradle中,导入依赖的spring包

spring-context: 

compile group: 'org.springframework', name: 'spring-context', version: '5.0.2.RELEASE'

spring-web:

compile group: 'org.springframework', name: 'spring-web', version: '5.0.2.RELEASE'

spring web mvc:

compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.2.RELEASE'

servlet:

provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'

jsp:

provided group: 'javax.servlet', name: 'jsp-api', version: '2.0'

如下图:

build.gradle

group 'com.etbird'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
group 'com.etbird'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.springframework', name: 'spring-context', version: '5.0.2.RELEASE'
    compile group: 'org.springframework', name: 'spring-web', version: '5.0.2.RELEASE'
    compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.2.RELEASE'
    provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
    provided group: 'javax.servlet', name: 'jsp-api', version: '2.0'
}

② 在src/main/resources下创建一个springmvc.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd
                http://www.springframework.org/schema/aop
                http://www.springframework.org/schema/aop/sping-aop.xsd
                http://www.springframework.org/schema/mvc
                http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--配置组件扫描-->
    <context:component-scan base-package="com.etbird.controller"/>

    <!--处理器映射器、处理器解析器-->
    <mvc:annotation-driven/>

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--释放静态资源-->
    <mvc:default-servlet-handler/>
</beans>

③ 在web.xml配置SpringMVC核心Servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    <!--配置springmvc核心servlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

④ 编写一个Controller和index.jsp

HelloController.java

package com.etbird.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class HelloController {
    @GetMapping("/index")
    public String index() {
        return "index";
    }
}

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
Index...
</body>
</html>

⑤ 配置Tomcat

点击  ,配置本地Tomcat8:

 

 出现如下界面,配置Deployment --> + --> Artifact...

 

 

选择 exploded

 

⑥ 点击  运行项目,

 浏览器输入http://localhost:8080/index,看到如下效果图:

 

 至此结束!

posted @ 2021-02-03 14:45  外星鸟  阅读(358)  评论(0)    收藏  举报