一:

通过实现spring的接口ApplicationContextAware

反射调用获取到Bean

config

package com.li.websockettest.config;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;/*** @author Li Zongyang* @Date 2022/6/14*/
@Component
public class BeanConfig implements ApplicationContextAware {private static ApplicationContext appCtx;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {appCtx = applicationContext;}public static Object getBean(String beanName) {return appCtx.getBean(beanName);}public static <T> T getBean(Class<T> clz) {return (T) appCtx.getBean(clz);}}

调用类

package com.li.websockettest.controller;import com.li.websockettest.config.BeanConfig;
import com.li.websockettest.entity.Allowances;
import com.li.websockettest.service.AllowancesService;
import com.li.websockettest.servlet.WebSocketServlet;import javax.annotation.Resource;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;/*** @author Li Zongyang* @Date 2022/6/14*/
public class WebSocketController {public void getData() throws IOException {AllowancesService allowancesService = BeanConfig.getBean(AllowancesService.class);WebSocketServlet socketServlet = BeanConfig.getBean(WebSocketServlet.class);List<Allowances> list = allowancesService.queryAllByLimit(0,10);socketServlet.onMessage("数据发生变化"+ Arrays.toString(list.toArray()));}}

第二种:

定义一个静态变量通过构造器进行赋值调用

package com.itun.cloud.lydx.util;import com.itun.cloud.lydx.model.FileUrl;
import com.itun.cloud.lydx.model.RewardHelpCheck;
import com.itun.cloud.lydx.model.SpeSubsidies;
import com.itun.cloud.lydx.model.TownSubsidies;
import com.itun.cloud.lydx.service.FileUrlService;
import com.itun.cloud.util.UuidUtil;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** @author liZongYang* @date 2022/1/24* @apiNote*/
@Component
public class FileUrlUtil {@Resourceprivate FileUrlService urlService;private static FileUrlUtil fileUrlUtil;@PostConstructpublic void init() {fileUrlUtil = this;fileUrlUtil.urlService = this.urlService;}public static List<FileUrl> getFileByParam(List<String> fileArr, String... otherParams) {List<FileUrl> fileList = new ArrayList<>();if (fileArr != null && fileArr.size() > 0) {for (String f : fileArr) {FileUrl fileUrl = new FileUrl();fileList.add(fileUrl);fileUrl.setID(UuidUtil.get32UUID());fileUrl.setRELATIVEPATH(f);fileUrl.setFOREIGNID(otherParams[0]);fileUrl.setFILEPURPOSETYPE(otherParams[1]);fileUrl.setCREATEDATE(new Date());}}return fileList;}public static Object getAllImg(Object vo, String id) {List<FileUrl> list ;list = fileUrlUtil.urlService.getUrlListById(id);if (!list.isEmpty()) {List<FileUrl> list1 = new ArrayList<>();List<FileUrl> list2 = new ArrayList<>();List<FileUrl> list3 = new ArrayList<>();List<FileUrl> list4 = new ArrayList<>();List<FileUrl> list5 = new ArrayList<>();for (FileUrl f : list) {switch (f.getFILEPURPOSETYPE()) {case "1":list1.add(f);break;case "2":list2.add(f);break;case "3":list3.add(f);break;case "4":list4.add(f);break;case "5":list5.add(f);break;}}if (vo instanceof RewardHelpCheck) {((RewardHelpCheck) vo).setIdImgList(list1);((RewardHelpCheck) vo).setFamilyImgList(list2);((RewardHelpCheck) vo).setMerryImgList(list3);((RewardHelpCheck) vo).setOtherImgList(list4);((RewardHelpCheck) vo).setQuitList(list5);} else if (vo instanceof SpeSubsidies) {((SpeSubsidies) vo).setIdImgList(list1);((SpeSubsidies) vo).setFamilyImgList(list2);((SpeSubsidies) vo).setMerryImgList(list3);((SpeSubsidies) vo).setOtherImgList(list4);((SpeSubsidies) vo).setQuitList(list5);} else if (vo instanceof TownSubsidies) {((TownSubsidies) vo).setIdImgList(list1);((TownSubsidies) vo).setFamilyImgList(list2);((TownSubsidies) vo).setMerryImgList(list3);((TownSubsidies) vo).setOtherImgList(list4);((TownSubsidies) vo).setQuitList(list5);}}return vo;}}

非controller层调用service2种相关推荐

  1. service层中注入conroller_springMVC中controller层调用service层的方式

    springmvc 中普通类调用注解service层 的方式除了 1.自动注入外: @Autowired UserService userService; 2.还可以这样: 工具类: /** * * ...

  2. Java中dao层、service层、controller层、entity层和view层的概述

    目录 DAO层:(持久层)主要与数据库进行交互 Service层:(业务层 )控制业务 Controler层:(控制层 )控制业务逻辑 Entity层: (实体层 )数据库在项目中的类 View层: ...

  3. DAO层、ENTITY层、SERVICE层、CONTROLLER层

    dao层.entity层.service层.controller层 2018年08月09日 11:02:31 一江春华终散去 阅读数:3074 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...

  4. SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层

    Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...

  5. pojo层、dao层、service层、controller层的作用

    pojo层(model) 实体层 数据库在项目中的类 model是模型的意思,与entity.domain.pojo类似,是存放实体的类. 类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应 ...

  6. 三层架构编程、DAO层、Entity层、Service层、Controller层

    什么是三层架构编程: 本质上所有的项目(应用程序)都是需要和用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程 在编程中,可以将这个过程分一下层次,最初只分两层,用户层和数据层,但 ...

  7. 实战SSM_O2O商铺_15【商铺注册】View层+Controller层之图片上传

    文章目录 概述 Maven依赖 文件上传解析器bean的配置 页面 shopoperation.html增加上传组件 shopoperation.js Controller层 Github地址 概述 ...

  8. SpringBoot 项目中在Controller 直接调用Mapper,提示:Field mapper in ‘*Controller ‘ required a bean of type ‘*Map

    今天使用IDEA 搭建SpringBoot 项目,我心血来潮想省略Service 层的编写就直接在Controller 层调用Mapper 层接口,提示如下错误信息: **************** ...

  9. Springboot中如何优雅的写好Controller层代码

    前言 优雅?看到这个词,我第一反应是什么是优雅?怎么写才算优雅?一千个读者有一千个哈姆雷特,每个人的经验.阅历不同,也许理解就不同.我对优雅的理解很简单,就是简洁有效.容易理解,别那么多套路.java ...

最新文章

  1. htm、html、shtml网页区别
  2. idea 2019.2 版本更新(最顶部从白色边框变为黑色边框)
  3. Ubuntu 16.04下Caffe-SSD的应用(七)——制作自己的VOC2007数据集
  4. MySQL如何查询两个日期之间的记录
  5. 漫画 | 你真的会用烙铁焊接吗?
  6. c# 如何在webbrowser控件执行一段JS代码
  7. CSS文字或元素的水平垂直居中多种方式(简单明了)
  8. SEH in ASM 研究(一)
  9. BBAug: 一个用于PyTorch的物体检测包围框数据增强包
  10. nginx 限制某些类型的客户端的访问
  11. 网站通过了QQ安全认证了
  12. jQuery插入节点,移动节点
  13. python all和any用法_python any()和all()用法
  14. session失效_Session的销毁方式到底有哪些?
  15. 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
  16. html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)
  17. 浅谈机顶盒破解之修改开机画面 修改开机动画 修改系统app 去掉认证app
  18. java excel 字体_java中Excel字体的设置,背景和纹理的操作
  19. mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
  20. 关于silverlight的xap包与dll分离的一些事儿

热门文章

  1. Linux防火墙iptables添加白名单
  2. 3款大屏播放软件,用法很详细,用于大屏幕播放视频和图片
  3. 大数据之路——阿里巴巴大数据实践:总述
  4. .net core linux环境下导出到excel报The type initializer for ‘Gdip‘ threw an exception.异常
  5. 四川省投资集团CIO王波:互联网+集团管控— —移动云在川投集团的应用
  6. 学物生地对以后学计算机有影响吗,江苏高考改革后的第一届学生选考物生地,有什么问题吗?...
  7. 为win11家庭中文版开启组策编辑器
  8. 解决required a single bean, but 2 were found问题
  9. python实现火车票查询_基于python的火车票查询工具
  10. DDOS攻击器常见的三种DDoS攻击方式详解