架构-Eureka:第一个方法
ylbtech-架构-Eureka:第一个方法 |
工程介绍
Spring Cloud
工程目录
- model
- registry-center
- Servers
- tzxyfx
- tzxyfx-provider
- zinpkin
启动流程
1.运行注册中心
运行工程方式如下:RunAs-->Java Application|(Alt+Shift+X,R)
2.运行客户端
3.运行服务端
4.
1. model返回顶部 |
2. registry-center返回顶部 |
3. Servers返回顶部 |
4. tzxyfx返回顶部 |
package com.tzxyfx.sbtz.controller; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.tzxyfx.common.util.user.UserInfoUtil;
import com.tzxyfx.sbtz.entity.Sbtz;
import com.tzxyfx.sbtz.service.SbtzService; /**
* @Description 内容控制器
* @author gjx
* @version v1.0
*/
@Controller
@RequestMapping("/sbtz")
public class SbtzController { @Resource
private SbtzService sbtzService; /**
* 前沿咨询请求
*
* @param model
* @return
*/
@RequestMapping("/searchSbtz")
public String searchSbtz(Sbtz sbtz) { sbtz.setArticleId("aaa");
List<Sbtz> sbtzList = sbtzService.searchSbtz(sbtz);
System.out.println("======SbtzController_end=====" + sbtzList.size()); UserInfoUtil.getRequest().setAttribute("lxjs", sbtzList); System.out.println("======SbtzController_end====="); return "forward:/sbtz.html";
} }
package com.tzxyfx.sbtz.entity; /**
*
* @Description
* @author gjx
* @date 2018年8月28日 下午2:32:36
* @version v1.0
*/
public class Sbtz {
private String articleId; private String articleTitle; public String getArticleId() {
return articleId;
} public void setArticleId(String articleId) {
this.articleId = articleId == null ? null : articleId.trim();
} public String getArticleTitle() {
return articleTitle;
} public void setArticleTitle(String articleTitle) {
this.articleTitle = articleTitle == null ? null : articleTitle.trim();
} }
package com.tzxyfx.sbtz.service; import java.util.List; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping; import com.tzxyfx.common.config.mvc.FullLogConfiguration;
import com.tzxyfx.sbtz.entity.Sbtz; @FeignClient(value = "TZXYFX-PROVIDER", configuration = FullLogConfiguration.class, path = "/sbtz")
public interface SbtzService { /**
*
* @param
* @param
* @return
*/
@RequestMapping(value = "/searchSbtz")
List<Sbtz> searchSbtz(Sbtz sbtz); }
package com.tzxyfx.sbtz.controller; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.tzxyfx.common.util.user.UserInfoUtil;
import com.tzxyfx.sbtz.entity.Sbtz;
import com.tzxyfx.sbtz.service.SbtzService; /**
* @Description 内容控制器
* @author gjx
* @version v1.0
*/
@Controller
@RequestMapping("/sbtz")
public class SbtzController { @Resource
private SbtzService sbtzService; /**
* 前沿咨询请求
*
* @param model
* @return
*/
@RequestMapping("/searchSbtz")
public String searchSbtz(Sbtz sbtz) { sbtz.setArticleId("aaa");
List<Sbtz> sbtzList = sbtzService.searchSbtz(sbtz);
System.out.println("======SbtzController_end=====" + sbtzList.size()); UserInfoUtil.getRequest().setAttribute("lxjs", sbtzList); System.out.println("======SbtzController_end====="); return "forward:/sbtz.html";
} }
package com.tzxyfx.sbtz.entity; /**
*
* @Description
* @author gjx
* @date 2018年8月28日 下午2:32:36
* @version v1.0
*/
public class Sbtz {
private String articleId; private String articleTitle; public String getArticleId() {
return articleId;
} public void setArticleId(String articleId) {
this.articleId = articleId == null ? null : articleId.trim();
} public String getArticleTitle() {
return articleTitle;
} public void setArticleTitle(String articleTitle) {
this.articleTitle = articleTitle == null ? null : articleTitle.trim();
} }
package com.tzxyfx.sbtz.service; import java.util.List; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping; import com.tzxyfx.common.config.mvc.FullLogConfiguration;
import com.tzxyfx.sbtz.entity.Sbtz; @FeignClient(value = "TZXYFX-PROVIDER", configuration = FullLogConfiguration.class, path = "/sbtz")
public interface SbtzService { /**
*
* @param
* @param
* @return
*/
@RequestMapping(value = "/searchSbtz")
List<Sbtz> searchSbtz(Sbtz sbtz); }
package com.tzxyfx; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.Bean; import com.base.util.redis.RedisCache; @SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient public class TzxyfxApplication { public static void main(String[] args) {
SpringApplication.run(TzxyfxApplication.class, args);
} @Bean
public RedisCache redisCache(){
return new RedisCache();
} }
<?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.tzxyfx.sys.dao.UserDao"> <resultMap type="com.tzxyfx.sys.entity.User" id="userLoginMap">
<id property="userId" column="USER_ID"/>
<result property="loginName" column="LOGIN_NAME"/>
<result property="userName" column="NAME"/>
<result property="state" column="STATE"/>
<result property="orgId" column="ORG_ID"/>
<result property="password" column="PASSWORD"/> <result property="identityNo" column="IDENTITY_NO"/>
<result property="mobile" column="MOBILE"/>
<result property="email" column="EMAIL"/>
<result property="officePhone" column="OFFICE_PHONE"/>
<result property="type" column="TYPE"/>
<result property="updateDate" column="UPDATE_DATE"/>
<result property="orderNo" column="ORDER_NO"/>
<!-- 需要添加Connction 角色信息 -->
<collection property="roles" ofType="com.base.entity.Role" javaType="java.util.ArrayList">
<result column="ROLE_ID" property="roleId" jdbcType="VARCHAR" />
<result column="SYSTEM_ID" property="systemId" jdbcType="VARCHAR" />
<result column="ROLE_NAME" property="roleName" jdbcType="VARCHAR" />
</collection>
</resultMap> <!-- 根据账号来获取用户信息 -->
<select id="findByLogin" parameterType="java.lang.String" resultMap="userLoginMap">
select u.*,r.role_id as role_id,r.role_name as role_name from t_user u inner join t_user_role ur on u.user_id = ur.user_id inner join t_role r on r.role_id = ur.role_id where u.login_name = #{login}
</select> </mapper>
5. tzxyfx-provider返回顶部 |
package com.tzxyfx.sbtz.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.tzxyfx.sbtz.entity.Sbtz;
import com.tzxyfx.sbtz.service.SbtzService; /*
* 类描述: role 的controller 层
* @auther wangmx
*/
@RestController
@RequestMapping("/sbtz")
public class SbtzController { @Autowired
private SbtzService sbtzService; @RequestMapping(value = "/searchSbtz")
public List<Sbtz> searchSbtz(@RequestBody Sbtz sbtz){ List<Sbtz> sbtzList = sbtzService.searchSbtz(sbtz); return sbtzList;
} }
package com.tzxyfx.sbtz.dao; import java.util.List; import com.tzxyfx.sbtz.entity.Sbtz; /**
* @author lc
**/
public interface SbtzDao { /**
* 关联 查询
*
* @param entity
* 查询 条件
*/
List<Sbtz> searchSbtz(String sbtz);
}
package com.tzxyfx.sbtz.entity; /**
*
* @Description
* @author gjx
* @date 2018年8月28日 下午2:32:36
* @version v1.0
*/
public class Sbtz {
private String articleId; private String articleTitle; private String userId; private String loginName; public String getArticleId() {
return articleId;
} public void setArticleId(String articleId) {
this.articleId = articleId == null ? null : articleId.trim();
} public String getArticleTitle() {
return articleTitle;
} public void setArticleTitle(String articleTitle) {
this.articleTitle = articleTitle == null ? null : articleTitle.trim();
} public String getUserId() {
return userId;
} public void setUserId(String userId) {
this.userId = userId;
} public String getLoginName() {
return loginName;
} public void setLoginName(String loginName) {
this.loginName = loginName;
} }
package com.tzxyfx.sbtz.service.imp; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import com.tzxyfx.sbtz.dao.SbtzDao;
import com.tzxyfx.sbtz.entity.Sbtz;
import com.tzxyfx.sbtz.service.SbtzService; /**
* @author lc
**/
@Service
@Transactional
public class SbtzServiceImpl implements SbtzService{
@Autowired
private SbtzDao sbtzDao; @Override
public List<Sbtz> searchSbtz(Sbtz sbtz) {
List<Sbtz> lis = null;
try { lis = sbtzDao.searchSbtz(sbtz.getArticleId()); } catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return lis;
} }
package com.tzxyfx.sbtz.service; import java.util.List; import com.tzxyfx.sbtz.entity.Sbtz; /**
* @author lc
**/
public interface SbtzService { /**
* 功能描述:加载用户的菜单树的数据
*
* @param user
* @return
*/
public List<Sbtz> searchSbtz(Sbtz sbtz); }
package com.tzxyfx; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.Bean; import com.base.util.redis.RedisCache; @SpringBootApplication
public class TzxyfxPApplication { public static void main(String[] args) {
SpringApplication.run(TzxyfxPApplication.class, args);
} /**
* 功能描述:注入redis
* @return
*/
@Bean
public RedisCache redisCache(){
return new RedisCache();
}
}
<?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.tzxyfx.sbtz.dao.SbtzDao"> <resultMap type="com.tzxyfx.sbtz.entity.Sbtz" id="SbtzMap">
<id property="userId" column="USER_ID"/>
<result property="loginName" column="LOGIN_NAME"/>
</resultMap> <!-- 查询 + -->
<select id="searchSbtz" resultMap="SbtzMap">
select * from t_user where name like '赵云%'
</select> </mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
</configuration>
6. zinpkin 返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
架构-Eureka:第一个方法的更多相关文章
- ABSD 基于架构的软件设计方法方法简介(摘抄)
ABSD(Architecture-Based Software Design)基于架构的软件设计方法 有三个基础: 第一个基础是功能分解.在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术 ...
- springCloud进阶(微服务架构&Eureka)
springCloud进阶(微服务架构&Eureka) 1. 微服务集群 1.1 为什么要集群 为了提供并发量,有时同一个服务提供者可以部署多个(商品服务).这个客户端在调用时要根据一定的负责 ...
- [moka同学笔记]yii2.0小物件的简单使用(第一种方法)
这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...
- iOS 清理缓存功能实现第一种方法
添加一个提示框效果导入第三方MBProgressHUD #import "MBProgressHUD+MJ.h" /** * 清理缓存第一种方法 */ -(void)clearCa ...
- Qt5.9一个简单的多线程实例(类QThread)(第一种方法)
Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...
- Eureka错误解决方法
# Eureka错误解决方法 ## security.basic.enabled 配置过时或不可用默认情况下:用户名:user密码:启动应用在控制台会输出,如下图: 也可以通过如下属性配置:sprin ...
- ActiveMQ源码架构解析第一节(转)
工作四年已久,也快到了而立之年,本人也酷爱技术,总是想找一些途径来提升自己,想着温故而知新所以就写起了博客,然而写博客这个想法也是酝酿了很久,近期也看到了有很多人在问关于ActiveMQ的相关问题,有 ...
- 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)
亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证 WCF,a ...
- 常见架构TLB miss处理方法(转)
转自网站:http://blog.sina.com.cn/s/blog_633f462901018reb.html 0. 综述 总的来说TLB miss处理分为硬件处理和软件处理两种,硬件 ...
随机推荐
- css属性代码大全总结(一)
一 CSS文字属性: color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-size : 9pt; /*文字大小*/ ...
- AI:IPPR的数学表示-CNN方法
前言: 随着超量类别PR和高精度的需求,人工特征方法局限性凸显出来,固定的特征hash压缩映射因其压缩损失.表现为特定的特征hash方法,在海量的同类数据集上近邻特性变差,而在不同类别的数据上面隔离性 ...
- CNN结构:SPP-Net为CNNs添加空间尺度卷积-神经元层
前几个CNN检测的框架要求网络的图像输入为固定长宽,而SPP-Net在CNN结构中添加了一个实现图像金字塔功能的卷积层SPP层,用于在网络中实现多尺度卷积,由此对应多尺度输入,以此应对图像的缩放变换和 ...
- 【sqli-labs】 less38 GET -Stacked Query Injection -String based (GET型堆叠查询字符型注入)
这个直接用union select就可以 http://192.168.136.128/sqli-labs-master/Less-38/?id=0' union select 1,2,3%23 看一 ...
- Typeclassopedia 阅读笔记:导言与 Functor
Typeclassopedia 阅读笔记 本文是对介绍 Haskell 中类型类(type classes)的文档 Typeclassopedia 的阅读笔记和简短总结,包含此文档中重要的知识点.读者 ...
- js document 触发按键事件
// 键盘控制 var keyEvent = (function () { document.onkeydown = function (e) { if (e.keyCode === 38) { // ...
- 数据库连接池c3p0
XML配置文件: <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!- ...
- python tkinter模块小工具界面
代码 #-*-coding:utf-8-*- import os from tkinter import * root=Tk() root.title('小工具') #清空文本框内容 def clea ...
- [系统资源攻略]IO第一篇-磁盘IO,内核IO概念
几个基本的概念 在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理.不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条--Hard disk drive(英文 ...
- PAT 1080. Graduate Admission
It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...