由于单位项目使用java开发,框架用的spring,之前一直觉得java特别麻烦,所以一直避免和java接触,这下跑不掉了。所以近两周一直在学习java。在此记录一下学习过程,和下一步学习计划。

书籍和文档

一般情况下,如果我对某个技术感兴趣的话,我会先去找这方面比较经典的书,找了网上的评价之后,发现Java核心技术这本书比较不错,果断买来。

第一周记本上都在看书,也是在再次对OOP有了重新的认识。看过书之后,准备再学习一下spring,网上看了参考资料并不是很多,不过我看spring官网上的guide很不错,可以参考着撸一遍。另外就是一个教程,关于spring mvc的。

搞起

有了书和文档的帮助之后,自然要实际操作起来才行。在操作之前我也是看了不少相关的帖子,最后选则IDEA来开发,而springboot更是极大的减少了java开发的复杂程度,减少了大量的xml配置文件。下面就详细介绍如何使用IDEA配合maven快速搭建一个springboot程序吧。

新建项目

使用IDEA新建maven项目: 新建maven项目 选择maven,勾选archetype,选择maven-archetype-webapp。然后完成一些设置就可以进入到项目文件了。

maven源设置

有过用maven管理项目经验的都知道,使用maven默认的源速度特别慢,经常是写代码的时间还没等待jar包下载的时间长。经过我的一番搜索发现阿里云提供的maven源在国内还是比较优质的。需要做的很简单,只需要在IDEA中稍微修改一下settings文件即可。 右键pom.xml文件,选择maven选项,点击打开settings.xml,在其中增加如下这段配置文件保存即可。

1
2
3
4
5
6
7
8
<mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
</mirrors>

效果就是这样settings.xml

依赖项导入

利用springboot进行开发webapp,我在使用中需要导入这些依赖:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.4.0.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
      <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <version>1.4.0.RELEASE</version>
      <optional>true</optional>
    </dependency>

由于配置了maven源,这些依赖项下载速度还是挺快的。

码码码

配置好这些东西之后,就可以码起来了。首先要在src文件夹下新建一个目录作为Soucres Root: Sources Root 在这里,我把java作为Soucres Root,由于使用了springboot,只需要用java代码写好controller即可:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package com.eclipsesv.HelloController;

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

/**
 * Created by eclipse on 16/8/26.
 */
@Controller
public class Hello {
    @RequestMapping("/")
    public String index(){
        return "index";
    }
}

使用@Controller和@RequestMapping配合使用就可以完成一个简单的路由映射,上边的这段代表如果访问url为"/“会返回名为"index"的视图,而这里的视图只需要写一个名为index的html 并把它放在/resources/templates中即可。 然后只需要写一个main函数就可以了:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package com.eclipsesv;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 * Created by eclipse on 16/8/26.
 */
@SpringBootApplication
public class Application {
    public static void main(String... arg){
        SpringApplication.run(Application.class,arg);
    }
}

使用@SpringBootApplication可以完成项目的自动配置,它会在启动的时候找到项目中由@Controller标识的区域,并解析@RequestMapping完成自动路由映射。 现在整个项目结构如下图所示:

项目结构

run起来

在完成这些之后,需要做一下项目的启动配置,如图: 启动配置 然后直接点run就可以了。

运行效果

整个过程除了pox.xml需要自己配置以外,并不需要另外的配置项,大大简化了项目配置的复杂程度。感觉还是不错的。