微服务架构SpringCloud入门

SpringBoot简介

 

定义

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.Spring Boot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。

 

 

特点

  1. 创建独立的春天应用程序
  2. 嵌入的Tomcat的,无需部署WAR文件
  3. 简化Maven的配置
  4. 自动配置春天
  5. 提供生产就绪型功能,如指标,健康检查和外部配置

创建第一个SpringBoot实例

1.创建Maven的工程

创建Maven工程,创建简单项目,类型为jar

修改JDK版本必须1.8以上,springboot基本上废除了1.6,1.7

 

2.全新构建方式的pom.xml

传统构建Maven的项目,POM中的依赖包繁多,升级一个罐子版本时,会引发新的冲突,调试许久。而SpringBoot接管了罐子的版本,它构建好一套,这套中各罐子的版本已经测试好,开发者再无需去关注每个依赖包的版本及冲突问题。从而简化开发。

再者,它启动也非常快,直接运行一个类,使用的tomcat的Maven的插件。开发调试时效率提高。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.tedu</groupId>

<artifactId>sc-hello</artifactId>

<version>0.0.1-SNAPSHOT</version>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.4.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>



<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

</project>

 

3. 创建的HelloController

使用@RestController替代@Controller和@ResponseBody(返回JSON串)

package com.tedu.controller;


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

import org.springframework.web.bind.annotation.RestController;


@RestController

public class HelloController {

@RequestMapping("hello")

public String hello(){

return "hello springboot";

}

}

 

 

4.全新运行方式

注意:必须加@SpringBootApplication注解,同时必须有包名

package com.tedu;



import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;



@SpringBootApplication

public class RunApplication {

public static void main(String[] args) {

SpringApplication.run(RunApplication.class, args);

}

}

 

直接运行的jar启动网络服务

1.修改的pom.xml

在pom.xml中中增加插件插件,忘记加会报“清单找不到”异常。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.4.RELEASE</version>

</parent>

<groupId>com.tedu</groupId>

<artifactId>hello</artifactId>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

 

 

2.执行的jar包

D:\ java \ ws \ stu \ hello \ target> D:\ java \ env \ jdk1.8 \ bin \ java -jar hello-0.0.1-SNAPSHOT.jar

SpringBoot和MyBatis的整合

系统架构图

 

创建数据库表

创建mybatisdb数据库,设置UTF-8字符集。

创建用户表:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (

  `ID` int(11) NOT NULL,

  `NAME` varchar(30) DEFAULT NULL,

  `BIRTHDAY` datetime DEFAULT NULL,

  `ADDRESS` varchar(200) DEFAULT NULL,

  PRIMARY KEY (`ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

增加数据: 

insert  into `user`(`ID`,`NAME`,`BIRTHDAY`,`ADDRESS`) values
(1,'夏言','1573-01-01 00:00:00','桂州村'),
(2,'严嵩','1587-01-01 00:00:00','分宜县城介桥村'),
(3,'徐阶','1580-01-01 00:00:00','明松江府华亭县'),
(4,'高拱','1566-01-01 00:00:00','河南省新郑市高老庄村'),
(5,'张居正','1558-01-01 00:00:00','江陵');

 

 

创建Maven的工程

创建Maven工程,创建简单项目,类型为jar

 

 

 

pom.xml的文件上添加依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>



<groupId>cn.tedu</groupId>

<artifactId>sc-mybatis</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>



<name>sc-mybatis</name>

<url>http://maven.apache.org</url>



<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.4.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>



<dependencies>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.0</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-core</artifactId>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.datatype</groupId>

<artifactId>jackson-datatype-joda</artifactId>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.module</groupId>

<artifactId>jackson-module-parameter-names</artifactId>

</dependency>

<!-- alibaba的druid数据库连接池 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid-spring-boot-starter</artifactId>

<version>1.1.0</version>

</dependency>

</dependencies>

</project>

关系编写User.java实体类

创建POJO对象

package cn.tedu.model;



import java.util.Date;



public class User {

private Integer id;

private String name;

private Date birthday;

private String address;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

}

 

编辑UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">



<!-- namespace命名空间,唯一特性 -->

<mapper namespace="cn.tedu.mapper.UserMapper">

<select id="find" resultType="User">

select id,name,birthday,address from user

</select>

</mapper>

 

 

UserMapper.java接口 

package cn.tedu.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import cn.tedu.model.User;


//注解和xml方式混合

public interface UserMapper {

//调用xml方式

    public List<User> find();



    //调用注解方式

    @Select("select * from user where id=#{id}")

public User get(@Param("id") Integer id);

}

 

 

UserService.java

package cn.tedu.service;


import java.util.List;
import cn.tedu.model.User;


public interface UserService {

    public List<User> find();

    public User get(Integer id);

}

 

 

UserServiceImpl.java

package cn.tedu.service.impl;


import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.tedu.mapper.UserMapper;
import cn.tedu.model.User;
import cn.tedu.service.UserService;


@Service
public class UserServiceImpl implements UserService{

    @Autowired

    private UserMapper userMapper;

    public List<User> find() {

        return userMapper.find();

    }

    public User get(Integer id){

        return userMapper.get(id);

    }
}

 

 

UserController.java

使用@RestController替代@Controller和@ResponseBody(返回JSON串)

package cn.tedu.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.tedu.model.User;
import cn.tedu.service.UserService;


@RestController
@RequestMapping(value = "/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/find")
    public List<User> find() {
        return userService.find();
    }

    @RequestMapping("/get/{id}")
    public User get(@PathVariable Integer id){
        return userService.get(id);
    }

}

 

 

编写application.yml

全局配置文件,YML为新的配置文件方式,注意其中格式为空格,不能有标签。

配置端口,配置数据源,配置MyBatis的全局配置。

注意:如果端口,启动时日志显示8080,说明此文件未加载检查原因一般是文件名或者路径不正确。

server:

  port: 8070



spring:

    datasource:

        driver-class-name: com.mysql.jdbc.Driver

        url: jdbc:mysql://127.0.0.1:3306/mybatisdb

        username: root

        password: root



mybatis:

  typeAliasesPackage: cn.tedu.model

  mapperLocations: classpath:mappers/*.xml

 

 

编写RunApplication.java

package cn.tedu;


import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
@MapperScan("cn.tedu.mapper") //扫描Mybatis接口文件
public class RunApplication {

    public static void main(String[] args) {

        SpringApplication.run(RunApplication.class, args);

    }

}

最后访问:     http:// localhost:8070 / user / find或者  http:// localhost:8070 / user / get / 5即可得到结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值