架构-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处理分为硬件处理和软件处理两种,硬件 ...
随机推荐
- js 如何给标签增加属性
<html> <head> <meta charset="UTF-8"> <title></title> </he ...
- 安装pywinauto的步骤
team准备搞自动化测试(桌面WPF系统),这几天一直在找自动化测试工具.发现了pywinauto这款工具,许多网友反应很好用,于是下载下来试用.不得不说遇到的坑真不少,记录下来以备不时之需. 前段时 ...
- Content-Encoding与Content-Type的区别
RFC 2616 for HTTP 1.1 specifies how web servers must indicate encoding transformations using the Con ...
- Redis 通用key操作命令
1.在redis里面允许模糊查询key,有3个通配符:*,?,[]. *:通配任意字符 ?:通配单个字符 []:通配中括号内的某个字符 例如: 2.randomKey 随机返回所有key中的某个 3. ...
- python 处理中文 读取数据库输出全是问号
ref:http://www.cnblogs.com/zhoujie/archive/2013/06/07/problem1.html 1.python连接mssql数据库编码问题 python一直对 ...
- centos7网卡重命名为ethx格式
参考:https://www.cnblogs.com/zyd112/p/8143464.html CentOS 7 使用 eth0 这样的传统名称,那么在安装启动(pxe)时,按Tab键在下方输入以下 ...
- H3C交换机配置学习随笔
1.交换机配置VLAN vlan 创建VLAN: <h3c>system-view [h3c]vlan 10 删除ID为10的vlan:undo vlan 10 注:任何型号的交换机,都支 ...
- 移动端出现弹出层body滚动
$("#box").on("click",function(e){ e.stopPropagation(); e.preventDefault(); $(&qu ...
- 【剑指Offer】52、正则表达式匹配
题目描述: 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹 ...
- 挑战程序设计第二版PDF高清完整版免费下载
挑战程序设计pdf 网上有些地方的资源获取比较麻烦,本着共享的原则将此书pdf发出来,希望有条件的同学支持正版. 链接:https://pan.baidu.com/s/16S-5QOjoNxSGQx- ...