博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot整合applicationContext实现上下文获取实例bean
阅读量:4287 次
发布时间:2019-05-27

本文共 3808 字,大约阅读时间需要 12 分钟。

一.工程结构

1.1 工程结构

1.2 逻辑流程

1.先用注解@component将ApplicationContextUtils放到ioc容器中

2.在使用的类中进行引用。

二 操作案例

2.1 将application实例化放到ioc容器中

package com.ljf.spring.boot.demo.util;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;/** * @ClassName: ApplicationContextUtils * @Description: TODO * @Author: liujianfu * @Date: 2020/11/03 21:14:43  * @Version: V1.0 **/@Component   //此注解记住一定要加,实例化这个bean放到spring的容器中public class ApplicationContextUtils implements ApplicationContextAware {    private static ApplicationContext context;    @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {        System.out.println("..............application context 在初始化:..............");        this.context = applicationContext;        System.out.println("context:"+context);    }    //根据bean名字获取工厂中指定bean 对象    public static Object getBean(String beanName){        System.out.println("context:"+context);        return context.getBean(beanName);    }}

2.2 service层

package com.ljf.spring.boot.demo.service.impl;import com.ljf.spring.boot.demo.service.UserService;import org.springframework.stereotype.Service;import java.util.ArrayList;import java.util.List;/** * @ClassName: UserServiceImpl * @Description: TODO * @Author: liujianfu * @Date: 2021/05/31 11:13:53  * @Version: V1.0 **/@Service("userService")public class UserServiceImpl implements UserService {    @Override    public List
queryUserList() { List
dataList=new ArrayList<>(); dataList.add("liu"); dataList.add("nou"); return dataList; }}

2.3  controller

package com.ljf.spring.boot.demo.controller;import com.ljf.spring.boot.demo.service.UserService;import com.ljf.spring.boot.demo.util.ApplicationContextUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.stereotype.Component;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;/** * @ClassName: UserController * @Description: TODO * @Author: liujianfu * @Date: 2021/05/31 11:30:35  * @Version: V1.0 **/@Controllerpublic class UserController{    @Autowired    private ApplicationContextUtils applicationContext;    @RequestMapping("/test")    @ResponseBody    public Object show(){        UserService userService = (UserService) ApplicationContextUtils.getBean("userService");        List
list= userService.queryUserList(); System.out.println("list:"+list.toString()); return "ok:"+list.toString(); }}

2.4 启动

package com.ljf.spring.boot.demo;import com.ljf.spring.boot.demo.service.UserService;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import sun.plugin2.message.CustomSecurityManagerRequestMessage;import java.util.List;/** * Hello world! * */@SpringBootApplicationpublic class App {    public static void main( String[] args )    {        SpringApplication.run(App.class);        /**        SpringApplication application = new SpringApplication(App.class);        ConfigurableApplicationContext context = application.run(args);        UserService userPoJpaRepository = context.getBean(UserService.class);        List
list= userPoJpaRepository.queryUserList(); System.out.println("list:"+list.toString()); **/ System.out.println("启动完成!!!"); }}

2.5 测试

 

转载地址:http://fatgi.baihongyu.com/

你可能感兴趣的文章
PHP之后台验证码的实现
查看>>
iOS之常用正则(一)
查看>>
PHP之退出登录、登录标志的设计、商品管理设计
查看>>
PHP之图片上传到服务器、上传的错误类型
查看>>
ISO之日历的使用
查看>>
ISO框架设计之登录超时、未登录设计和断网重连的设计。。。。。
查看>>
iOS 之IQKeyboardManager键盘的使用
查看>>
PHP之目录的操作
查看>>
iOS 之苹果运行机制总结
查看>>
PHP之文件操作,http请求数据格式,模拟get和post,CURL模拟请求的使用
查看>>
PHP之电商网站解析设计及防攻击、错误日志、iframe局部刷新
查看>>
iOS之Header Search Paths和User Header Search Paths和library searchpath、pch(prefix header)、pods文件路径
查看>>
iOS之开发编码规范
查看>>
iOS中状态栏网络加载指示器
查看>>
PHP之MAC上环境配置
查看>>
iOS之WKWebView修改网页页面的值
查看>>
PHP之数据库设计
查看>>
iOS之NSLog控制台打印不完全的解决方法
查看>>
iOS之github、oschina、bitboucket使用(二)
查看>>
iOS 之AFN封装(四)常用
查看>>