开发者社区> 似水的流年> 正文

使用idea创建一个web的Gradle项目

简介:
+关注继续查看

1 生成基本的项目结构

1.1    使用Spring Initializr新建一个项目。

TIM截图20180412143313.jpg

注意:这里Packaging要选war包,这个选项对自动生成的代码有影响,下面会说。

TIM截图20180412143329.jpg

这里就算不勾选Web,由于之前选了打war包,也会生成web项目。

TIM截图20180412143520.jpg

TIM截图20180412143558.jpg

TIM截图20180412143610.jpg

gradle推荐使用默认的,会自动下载,如果下载很慢的,那就选Use local gradle distribution,指定自己本地的gradle路径。

1.2 gradle文件配置

创建完项目后,可能在右下角会看到这个提示

TIM截图20180412143731.jpg

表示gradle文件已改变,是否需要导入新的依赖,这里我们点Enable Auto-Import,这个选项的意思是只要你改动了build.gradle文件,就会自动刷新依赖

注意:下次重启Intellij可能会出现下图的提示

1.jpg

那就点Create Default Context,创建默认的Context

TIM截图20180412143919.jpg

我们前面Packaging勾选war产生的效果就是
1.增加了apply plugin: 'war',war插件 
2.providedRuntime('org.springframework.boot:spring-boot-starter-tomcat'),表示代码在运行时需要的依赖,providedRuntime是指依赖的Jar包不会被加到War包里面。

然后配置热部署,热部署是指一旦项目run起来,我们就不需要再次run了,只需要编译修改的文件或者编译整个工程,修改就会自动部署,这里还是用spring的springloaded。 

在buildscript的dependencies中加入:
classpath 'org.springframework:springloaded:1.2.7.RELEASE'

之后代码有修改只需要编译修改了的代码(单个文件:菜单栏build/recompile….,多个就要在左边的Project中选中修改的文件,右键,rebuild,或者直接整个工程重新编译)就行了。


1.3 工程目录配置

工程目录中,基本配置其实都自动生成好了,自动生成的文件目录如下图所示:

1.png

这里有两个类,HexiApplication和ServletInitializer。

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(HexiApplication.class);
    }
}
@SpringBootApplication
public class HexiApplication {
    public static void main(String[] args) {
        SpringApplication.run(HexiApplication.class, args);
    }
}

Packaging勾选war还有一个效果就是会生成一个ServletInitializer。因为项目要部署到tomcat,启动类必须继承自SpringBootServletInitializer,主要起到web.xml的作用。 
注意:这里我们解释下@SpringBootApplication
@SpringBootApplication等价于@Configuration、@EnableAutoConfiguration、@ComponentScan,查看SpringBootApplication注解可以发现@ComponentScan并没有添加任何的参数,它会自动扫描工程里所有的@Component, @Service, @Repository, @Controller并把它们注册为Spring Beans。


其实现在一个最简单的springboot项目我们已经搭建完成了。什么?不相信?,你可以运行一下HexiApplication这个文件呀。会报你未配置dataSource,我们如下图所示进行一下配置即可完成一个最简单的springboot项目进行跑通
spring.datasource.url=jdbc:mysql://localhost:3306/maxrocky
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
账号密码当然你要配置成你自己的。OK 项目跑起来了。最简单的springboot项目搭建完成。 


2 控制器的编写
按如图所示包结构新建包和类。
1.jpg
HelloController
@RestController("/hello")
public class HelloController {

    private HelloWorld helloWorld;

    public HelloController(HelloWorld helloWorld) {
        this.helloWorld = helloWorld;
    }

    @GetMapping
    public String hello() {
        return helloWorld.hello();
    }
}
HelloWorld
@Component
public class HelloWorld {
    public String hello() {
        return "Hello World!";
    }
}

这里我们的HelloWorld或HelloController都没有@AutoWired注解(@Autowired注释可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过@Autowired的使用来消除set,get方法)。因为Spring的文档写到了如果只有一个构造函数,就可以省略这个注释。如果有多个,则要加上。
@RestController("/hello")
public class HelloController {

    private HelloWorld helloWorld;

    @AutoWired
    public HelloController(HelloWorld helloWorld) {
        this.helloWorld = helloWorld;
    }

    ...
}

@AutoWired会寻找和构造函数参数类型匹配的bean,把它们作为传入参数来创建HelloController。

@Component泛指组件,一般用于普通POJO,当组件不好归类的时候,也可以使用这个注解进行标注。 
@Service用于标注业务层组件
@RestController用于标注控制层组件。@RestController同时包含了@Controller、@ResponseBody。
@GetMapping也是一个组合注解,相当于@RequestMapping(method = RequestMethod.GET)的缩写。 类似的还有@PostMapping、@PutMapping、@DeleteMapping。

3 运行应用
如图所示,打开右边的gradle,找到bootRun运行。跑起来后,下面的run工具窗口会一直显示在运行。此时打开浏览器,输入http://localhost:8080/hello,就可以看到Hello World!了。如果运行出错,则在Terminal工具窗口输入`./gradlew bootRun’看错误日志。
TIM截图20180412144610.jpg
TIM截图20180412144618.jpg

tomcat部署
之前提到过tomcat,但这个是可选的,如果你安装了tomcat,那如何在tomcat里调试呢?
点击菜单里的Run->EditConfigurations,在弹出的菜单的左上角点击加号,然后选择tomcat server->local,做如下图中的配置:

1.jpg
注意deployment标签内的设置

2.jpg

完成以后,就可以从tomcat中调试了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
IDEA创建JavaWeb项目
创建JavaWeb项目的步骤大致如下: 1. 创建JavaWeb项目之前所需要的条件 - 安装jdk - 安装服务器(如:tomcat) - 安装idea 2. 新建项目 New——>Project.
1749 0
一个JavaWeb项目中使用的部分技术
-- 2015年8月8日1. Web框架: Spring+ SpringMVC + MyBatis Spring: 作为容器,工厂,用于解耦以及管理对象生命周期。 整合各类框架和依赖。 MVC  : 配置,文档与源码结合在一起,减轻开发工作量,易维护,易测试. MyBatis: 灵活稳定,自由度高,与代码生成器结合使用,易集成,易开发,代码可读性良好。
1045 0
3、使用Gradle创建Libgdx项目
(原文链接:http://www.libgdx.cn/topic/20/3-%E4%BD%BF%E7%94%A8gradle%E5%88%9B%E5%BB%BAlibgdx%E9%A1%B9%E7%9B%AE) 创建一个Libgdx项目 Libgdx项目可以使用一个叫gdx-setup.jar的文件创建,gdx-setup是一个图形界面的java程序,也可以在命令行下执行。
1045 0
react native插件 react-navigation使用心得
StackNavigator StackNavigator(screens,configs) const Stack = StackNavigator({ Home: { screen: Home, }, Profile: { screen: Profile } }.
1292 0
Gradle中使用idea插件的一些实践
如果你的项目使用了Gradle作为构建工具,那么你一定要使用Gradle来自动生成IDE的项目文件,无需再手动的将源代码导入到你的IDE中去了。 如果你使用的是eclipse,可以在build.gradle中加入这么一行. 1 apply plugin: 'eclipse' 然后在命令行中输入gradle eclipse就可以生成eclipse的项目文件,直接使用eclipse打开生成的项目文件即可。
1340 0
使用IntelliJ IDEA 14和Maven创建java web项目
原文:使用IntelliJ IDEA 14和Maven创建java web项目 http://mark.leanote.com/post/%E4%BD%BF%E7%94%A8IntelliJ-IDEA-14%E5%92%8CMaven%E5%88%9B%E5%BB%BAjava-web%E9%A1%B9%E7%9B%AE 安装Maven 下载安装 去maven官网下载最新版。
1326 0
intellij 创建java web项目(maven管理的SSH)
intellij 创建java web项目(maven管理的SSH) 环境intellij IDEA14、MAVEN、Spring、Struts2、Hibernate、Java Web。工程搭建。 1、创建maven项目 1、关闭现有项目,或者new progect 2、创建maven的web工程 3 4 5 2、添加web工程 6、添加web
1318 0
AKM项目轶事之Bonded Process Track Report
AKM项目轶事之Bonded Process Track Report   这段时间一直为项目上的track report而担忧。因为其逻辑很复杂,很多栏目的值都不知道如何去维护!下周就要面对业务团队的直接测试了,这是一场严峻的考验!业务团队很难对付,尤其是其CFO Helen姐姐!更是最有挑战性的一个客户!我早已做好了被其challenge的心理准备。
818 0
+关注
似水的流年
开发工程师O(∩_∩)O
136
文章
385
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载