spring boot2

来源:慕课

spring boot2.0 新特性:

1.编程语言:Java8,Kotlin。

2. 底层框架:Spring Framwork 5.0x

3.全新特性:Web Flux

环境准备:

装配jdk:https://java.oracle.com/

装配maven:http://maven.apache.org/

装配IDEA: http://www.jetbrains.com/idea/

注意:

Maven 3.3+ require JDK 1.7 or above to execute

maven配置环境变量:

 新建变量名:MAVEN_HOME          值:D:\develop\maven-3.6

在path 中添加:%MAVEN_HOME%\bin

cmd窗口验证:mvn -version

修改conf/settings

1.指定下载包存放位置:<localRepository>E:/.m2/repos</localRepository>

2.使用aliyun镜像,在mirrors标签下增加:

 <mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

IDEA,使用社区版:这里使用Community,(后来经过使用,发现还是旗舰(uitimate)版好用,推荐下载旗舰版)

旗舰版破解:https://blog.csdn.net/qq_42914528/article/details/85617901

安装IDEA完成后,在安装目录bin下,修改idea.properties

修改的原因是:将缓存的和日志的路径固定,默认是在C盘。

修改第八行:#idea.config.path=${user.home}/.IdeaIC/config

改为: idea.config.path=E:/idea/.IdeaIC/config

修改第13行,改为:idea.system.path=E:/idea/.IdeaIC/system

然后启动IDEA,

点击右下角Configure,点击settings   修改maven和jdk。

最上面输入maven,点击Maven,修改Maven home directory:为本地安装的maven路径,例如:D:\software\maven3.6.0

点击Maven下的 Importing   勾选上Sources,勾选原因:把源码下载下来。

---开始创建项目

进入网站:start.spring.io 填写好相应的信息后下载。如下图所示。

reactive web基于web flux进行开发的,同时也是基于Netty 方式。而传统的spring MVC基于servlet容器,如:jetty和tomcat

 

 

下载之后解压,然后将解压后的first-demo文件导入到IDEA中。

idea页面选择,Import Project 

一直点击next ,直到finished

-----------------------------------------------------------------------

普通mvc测试代码:

domain:

package com.run.demo.domain;

public class User {

    private  int id;
    private  String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

 

 

dao层:

package com.imooc.firstdemo.repository;
@Repository
public class UserRepository {
    /**
     * map
     */
    private final ConcurrentMap<Integer, User> repository = new ConcurrentHashMap<Integer, User>();
    private final static AtomicInteger idGenerator = new AtomicInteger();

    /**
     * 保存用户对象
     *
     * @param user{@link user} 对象
     * @return
     */
    public boolean save(User user) {
        Integer id = idGenerator.incrementAndGet();
        user.setId(id);
        return repository.put(id, user) == null;
    }

    public Collection<User> findAll(){
        return repository.values();
    }
}

 

控制层:

package com.imooc.firstdemo.controller;
@RestController
public class UserController {
    public final UserRepository userRepository;
    @Autowired
    public UserController(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
    @GetMapping("/person/save")
    public User save(String name){
        User user  = new User();
        user.setName(name);
        if( userRepository.save(user)){
           System.out.printf("用户对象: %s 保存成功! \n",user);
        }

        return user;
    }

}

运行main方法。注意main方法在包下:com.imooc.firstdemo

------------------------------------------------------------------

使用webFlux方式:

 

package com.imooc.firstdemo.config;
@Configuration
public class RouteFunctionConfiguration {
    /**
     * servlet
     * 请求接口:ServletRequest 或者HttpServletRequst
     * 相应接口:ServletResponse 或者HttpServletResponse
     * spring 5.0 重新定义了服务请求和相应接口
     * 请求接口:ServerRequest
     * 相应接口:ServerResponse
     * 即可支持Servlet规范,也可支持自定义,比如:Netty(Web Server)
     * Mono 是0-1个对象集合
     * Flux 是0-N个对象集合
     * REactive 中的Flux 或者Mono 它是异步处理
     * 集合对象基本是同步处理(阻塞)
     * Flux 和Mono 都是Publisher 发布器。
     */

    @Bean
    @Autowired
    public RouterFunction<ServerResponse> personFindAll(UserRepository userRepository){

       return RouterFunctions.route(RequestPredicates.GET("/person/find/all"),
                request ->{
                    Collection<User> all = userRepository.findAll();
                    Flux<User> userFlux = Flux.fromIterable(all);
                    return ServerResponse.ok().body(userFlux,User.class);
                });
     }
}

下载postman发送模拟请求发送。下载地址:https://www.getpostman.com

-------------------------------------------------------------------------------------------------------------------

如果使用eclipse,先集成maven,在eclipse中下载spirng boot的插件。新建项目:file->new --spring --sping project start 

(具体的请百度)

 

上面介绍了使用图形化界面构建maven项目的方式。下面使用maven 命令行的方式构建

具体介绍:http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html

interactiveMode=false 是非交互式(不用手动输入)

打开cmd窗口,到E盘work目录下:E:/work

E:\work> mvn archetype:generate -DinteractiveMode=false -DgroupId=com.imooc -DartifactId=first-demo -Dversion=1.0.0-SNAPSHOT

回车

然后用idea把它打开

然后copy依赖到pom.xml 中

 

----------------------------下面介绍多模块开发---------------

项目下新建model,分为三个模块。model,persistence,和web三个。

移动代码,在保持包名一致的情况下移动。,controller层在web,UserRepository类移动到persistence下,domain到model下。

将全局的pom文件中的build移动到web模块下的pom文件中,同时制定mainClass。如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.run.demo.DemoApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

项目jar方式打包:(模块的pom中如果不指定<packaging>则默认打成jar包

cmd窗口到项目的目录下:执行:mvn -Dmaven.test.skip -U clean package

打包:

E:\work\first-demo> mvn -Dmaven.test.skip -U clean package

查看jar包

E:\work\first-demo\web\target> dir 

运行jar包

E:\work\first-demo\web\target> jar -jar web-0.0.1-SNAPSHOT.jar

------------------

项目war方式打包:

将web模块中增加

<packaging>war</packaging>

在web模块中src/main下面新建webapp文件夹,webapp下面建WEB-INF文件夹,WEB-INF下面建web.xml

E:\work\first-demo>mvn -Dmaven.test.skip -U clean package

E:\work\first-demo\web\target> jar -jar web-0.0.1-SNAPSHOT.war

 

------最后介绍springboot运行模式

1.idea方式:

 

2.jar/war 方式:

 

3。Maven 方式:

第一步:进入项目目录下

E:\work\first-demo> mvn -Dmaven.test.skip -U clean install

第二步:进入web目录

E:\work\first-demo\web> mvn spring-boot:run

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值