日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springcloud系列三 搭建服务模块

發布時間:2023/11/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springcloud系列三 搭建服务模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

搭建服務模塊為了模擬正式開發環境,只是少寫了service層直接在controller里面直接引用,直接上圖和代碼:更為方便:

創建完成之后加入配置:

pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?> <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"><parent><artifactId>springcloud-parent</artifactId><groupId>com.cxy</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><packaging>jar</packaging><artifactId>spring-person</artifactId><dependencies><dependency><groupId>org.springframework.cloud</groupId><!--千萬注意,不要寫成spring-cloud-netflix-eureka-client,寫成這樣不會報錯,但是注冊不了服務--><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version></dependency><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><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><dependencies><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version></dependency></dependencies><executions><execution><id>mybatis generator</id><phase>package</phase><goals><goal>generate</goal></goals></execution></executions><configuration><!--允許移動生產的文件--><verbose>true</verbose><!--允許自動覆蓋文件,在開發者不可以設置為true--><overwrite>true</overwrite><!--制定生產文件的位置--><configurationFile>src/main/resources/mybatis_generator.xml</configurationFile></configuration></plugin></plugins></build> </project>

這個插件中加入了自動生成代碼插件:

mybatis_generator.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration><!--驅動包的路徑--><!--<classPathEntry location="F:\maven\repos\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>--><context id="DB2Tables" targetRuntime="MyBatis3"><!--注釋--><commentGenerator><property name="suppressAllComments" value="true"/><property name="suppressDate" value="true"/></commentGenerator><!--數據庫連接--><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://127.0.0.1:3306/fr_db?zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8" userId="root"password="1234"/><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!--生成Model類存放位置--><javaModelGenerator targetPackage="com.cxy.dataObject" targetProject="src/main/java"><!--是否對model添加構造函數--><property name="constructorBased" value="false"/><!--是否允許子包--><property name="enableSubPackages" value="true"/><!--建立的model對象是否不可變,也就是生成的model沒有setter方法--><property name="immutable" value="false"/><property name="trimStrings" value="false"/></javaModelGenerator><!--生成映射文件存放位置--><sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources"><property name="enableSubPackages" value="true"/></sqlMapGenerator><!--生成Mapper類存放位置--><javaClientGenerator type="XMLMAPPER" targetPackage="com.cxy.dao" targetProject="src/main/java"><property name="enableSubPackages" value="true"/></javaClientGenerator><!--生成與表對應的類名--><table tableName="person" domainObjectName="PersonDo" enableCountByExample="false"enableDeleteByExample="false"enableSelectByExample="false" enableUpdateByExample="false" selectByExampleQueryId="false"></table></context></generatorConfiguration>

yml文件:

eureka:client:serviceUrl:defaultZone: http://127.0.0.1:8761/eureka/ #eureka注冊中心地址 spring:application:name: cxy-person-service #應用名#datasource,數據連接datasource:driver-class-name: com.mysql.jdbc.Driverurl : jdbc:mysql://127.0.0.1:3306/fr_db?zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8password: 1234username: root#mybatis mybatis:type-aliases-package: com.cxy.dataObject #實體類映射文件包mapper-locations: classpath:mapping/*.xml #生成的sql語句 server:port: 8081

筆者在這個文件配置時候出現很多問題,慢慢的解決了,

注意yml文件格式

啟動類:

package com.cxy;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;/**** @ClassName: PersonApplication* @Description:* @Auther: 陳緒友* @Date: 2019/1/2816:30* @version : V1.0*/ @SpringBootApplication @EnableEurekaClient //開啟注解,注冊服務 @MapperScan("com.cxy.dao") public class PersonApplication {public static void main(String[] args) {SpringApplication.run(PersonApplication.class,args);} }

controller

package com.cxy.controller;import com.cxy.dao.PersonDoMapper; import com.cxy.dataObject.PersonDo; 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.RequestMethod; import org.springframework.web.bind.annotation.RestController;/**** @ClassName: PersonController* @Description:* @Auther: 陳緒友* @Date: 2019/1/2816:31* @version : V1.0*/ @RequestMapping("/person") @RestController public class PersonController {@Autowiredprivate PersonDoMapper personDoMapper;@RequestMapping(value = "{id}",method = RequestMethod.GET)

  public PersonDo selectPersonDoByid(@PathVariable Integer id){

    return personDoMapper.selectByPrimaryKey(id); }
  @RequestMapping(value = "{id}",method = RequestMethod.DELETE)

  public Integer deletePersonDoByid(@PathVariable Integer id){

    return personDoMapper.deleteByPrimaryKey(id); } }

dao

package com.cxy.dao;import com.cxy.dataObject.PersonDo; import org.apache.ibatis.annotations.Mapper;@Mapper public interface PersonDoMapper {int deleteByPrimaryKey(Integer id);int insert(PersonDo record);int insertSelective(PersonDo record);PersonDo selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(PersonDo record);int updateByPrimaryKey(PersonDo record); }

pojo:個人喜歡叫做數據庫數據模型,在正式開發中和這個是不可以直接返回給前端的,是需要進行封裝給前端的

po,對應的數據庫數據模型

dto 返回給前端的數據模型,即就是頁面展示的模型

vo 是前端傳輸過來給后臺的模型

?

package com.cxy.dataObject;public class PersonDo {private Integer id;private String name;private Integer age;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 Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;} }

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"> <mapper namespace="com.cxy.dao.PersonDoMapper"><resultMap id="BaseResultMap" type="com.cxy.dataObject.PersonDo"><id column="id" jdbcType="INTEGER" property="id" /><result column="name" jdbcType="VARCHAR" property="name" /><result column="age" jdbcType="INTEGER" property="age" /><result column="address" jdbcType="VARCHAR" property="address" /></resultMap><sql id="Base_Column_List">id, name, age, address</sql><select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">select <include refid="Base_Column_List" />from personwhere id = #{id,jdbcType=INTEGER}</select><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">delete from personwhere id = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="com.cxy.dataObject.PersonDo">insert into person (id, name, age, address)values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{address,jdbcType=VARCHAR})</insert><insert id="insertSelective" parameterType="com.cxy.dataObject.PersonDo">insert into person<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null">id,</if><if test="name != null">name,</if><if test="age != null">age,</if><if test="address != null">address,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="id != null">#{id,jdbcType=INTEGER},</if><if test="name != null">#{name,jdbcType=VARCHAR},</if><if test="age != null">#{age,jdbcType=INTEGER},</if><if test="address != null">#{address,jdbcType=VARCHAR},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="com.cxy.dataObject.PersonDo">update person<set><if test="name != null">name = #{name,jdbcType=VARCHAR},</if><if test="age != null">age = #{age,jdbcType=INTEGER},</if><if test="address != null">address = #{address,jdbcType=VARCHAR},</if></set>where id = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="com.cxy.dataObject.PersonDo">update personset name = #{name,jdbcType=VARCHAR},age = #{age,jdbcType=INTEGER},address = #{address,jdbcType=VARCHAR}where id = #{id,jdbcType=INTEGER}</update> </mapper>

這個是代碼生成命令的截圖

啟動服務:

?

進入注冊中心查看:

在此服務注冊就完成了,那么遠程是如何進行調用的呢,下接將會整合opnfeign進行服務調用,當然傳統的httpclient,restemplate都是可以進行服務調用的

傳統的方法就不調用了,比較繁瑣,

?

轉載于:https://www.cnblogs.com/xiufengchen/p/10331030.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的springcloud系列三 搭建服务模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。