非controller层调用service2种
一:
通过实现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种相关推荐
- service层中注入conroller_springMVC中controller层调用service层的方式
springmvc 中普通类调用注解service层 的方式除了 1.自动注入外: @Autowired UserService userService; 2.还可以这样: 工具类: /** * * ...
- Java中dao层、service层、controller层、entity层和view层的概述
目录 DAO层:(持久层)主要与数据库进行交互 Service层:(业务层 )控制业务 Controler层:(控制层 )控制业务逻辑 Entity层: (实体层 )数据库在项目中的类 View层: ...
- DAO层、ENTITY层、SERVICE层、CONTROLLER层
dao层.entity层.service层.controller层 2018年08月09日 11:02:31 一江春华终散去 阅读数:3074 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...
- SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层
Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...
- pojo层、dao层、service层、controller层的作用
pojo层(model) 实体层 数据库在项目中的类 model是模型的意思,与entity.domain.pojo类似,是存放实体的类. 类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应 ...
- 三层架构编程、DAO层、Entity层、Service层、Controller层
什么是三层架构编程: 本质上所有的项目(应用程序)都是需要和用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程 在编程中,可以将这个过程分一下层次,最初只分两层,用户层和数据层,但 ...
- 实战SSM_O2O商铺_15【商铺注册】View层+Controller层之图片上传
文章目录 概述 Maven依赖 文件上传解析器bean的配置 页面 shopoperation.html增加上传组件 shopoperation.js Controller层 Github地址 概述 ...
- SpringBoot 项目中在Controller 直接调用Mapper,提示:Field mapper in ‘*Controller ‘ required a bean of type ‘*Map
今天使用IDEA 搭建SpringBoot 项目,我心血来潮想省略Service 层的编写就直接在Controller 层调用Mapper 层接口,提示如下错误信息: **************** ...
- Springboot中如何优雅的写好Controller层代码
前言 优雅?看到这个词,我第一反应是什么是优雅?怎么写才算优雅?一千个读者有一千个哈姆雷特,每个人的经验.阅历不同,也许理解就不同.我对优雅的理解很简单,就是简洁有效.容易理解,别那么多套路.java ...
最新文章
- htm、html、shtml网页区别
- idea 2019.2 版本更新(最顶部从白色边框变为黑色边框)
- Ubuntu 16.04下Caffe-SSD的应用(七)——制作自己的VOC2007数据集
- MySQL如何查询两个日期之间的记录
- 漫画 | 你真的会用烙铁焊接吗?
- c# 如何在webbrowser控件执行一段JS代码
- CSS文字或元素的水平垂直居中多种方式(简单明了)
- SEH in ASM 研究(一)
- BBAug: 一个用于PyTorch的物体检测包围框数据增强包
- nginx 限制某些类型的客户端的访问
- 网站通过了QQ安全认证了
- jQuery插入节点,移动节点
- python all和any用法_python any()和all()用法
- session失效_Session的销毁方式到底有哪些?
- 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
- html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)
- 浅谈机顶盒破解之修改开机画面 修改开机动画 修改系统app 去掉认证app
- java excel 字体_java中Excel字体的设置,背景和纹理的操作
- mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
- 关于silverlight的xap包与dll分离的一些事儿
热门文章
- Linux防火墙iptables添加白名单
- 3款大屏播放软件,用法很详细,用于大屏幕播放视频和图片
- 大数据之路——阿里巴巴大数据实践:总述
- .net core linux环境下导出到excel报The type initializer for ‘Gdip‘ threw an exception.异常
- 四川省投资集团CIO王波:互联网+集团管控— —移动云在川投集团的应用
- 学物生地对以后学计算机有影响吗,江苏高考改革后的第一届学生选考物生地,有什么问题吗?...
- 为win11家庭中文版开启组策编辑器
- 解决required a single bean, but 2 were found问题
- python实现火车票查询_基于python的火车票查询工具
- DDOS攻击器常见的三种DDoS攻击方式详解