当前位置: 首页 > news >正文

ApplicationContext接口实现(四)

         第四种实现也是比较经典的容器实现类,创建的实现类用于实现内嵌Tomcat。适用于Web环境。

一.配置类

@Configurationstatic class WebConfig{@Beanpublic ServletWebServerFactory servletWebServerFactory(){return new TomcatServletWebServerFactory();}@Beanpublic DispatcherServlet dispatcherServlet(){return new DispatcherServlet();}@Beanpublic DispatcherServletRegistrationBean registrationBean(DispatcherServlet dispatcherServlet){return new DispatcherServletRegistrationBean(dispatcherServlet,"/");}@Bean("/hello")public Controller controller1(){return new Controller() {@Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {response.getWriter().print("hello");return null;}};}}

          配置类里面注入了四个Bean,第一个是ServletWebServerFactory内嵌容器,第二个是dispatcherServlet,分发处理控制请求,第三个Bean用来建立两者之间的关系。第四个Bean相当于一个Controller控制器,bean的名字以/开头,并且返回一个Controller接口。访问路径也是使用了bean的名字作为路径。

2.容器类

public static void testAnnotationConfigServletWebServerApplicationContext(){AnnotationConfigServletWebServerApplicationContext context = new AnnotationConfigServletWebServerApplicationContext(WebConfig.class);for (String name : context.getBeanDefinitionNames()){System.out.println(name);}}

        注册配置类,并打印容器。

3.主类调用

public static void main(String[] args) {//testClassPathXmlApplicationContext();//testFileSystemXmlApplicationContext();/*DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();System.out.println("读取之前....");for(String name : beanFactory.getBeanDefinitionNames()){System.out.println(name);}XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);reader.loadBeanDefinitions(new FileSystemResource("src\\main\\resources\\a01.xml"));System.out.println("读取之后");for(String name : beanFactory.getBeanDefinitionNames()){System.out.println(name);}*///testAnnotationConfigApplicationContext();testAnnotationConfigServletWebServerApplicationContext();}

4.结果输出

5.浏览器访问

http://www.dtcms.com/a/419506.html

相关文章:

  • PyQt python 异步任务,多线程,进阶版
  • 磁盘物理坏块与逻辑坏块的区别
  • net asp网站开发长春哪有做网站公司
  • 【机器学习】监督学习 —— 决策树(Decision Tree)
  • (基于江协科技)51单片机入门:5.定时器
  • 怎么制作个人门户网站东莞常平中转场
  • 强化学习原理(四)
  • 做网站 毕业设计长沙企业网页设计哪家专业
  • 菊风可视化回溯解决方案,为金融业务合规打造全流程“可回溯”能力
  • 蜜度AI审校从技术到服务全面突破 为出版内容校对注入新活力
  • 单一索引,覆盖索引,联合索引
  • BentoML推出llm-optimizer开源框架:让LLM性能调优变简单?
  • Cherry Studio实战使用
  • Python 类型提示:Literal 类型
  • 仿造别人的网站侵权吗做网站被抓
  • 做中文网站的公司海安网站设计公司
  • 浏览器获取到网页的流程
  • 解析网站怎么做wordpress 小程序 插件
  • SQL 性能优化:为什么少用函数在 WHERE 条件中?
  • 迁西网站开发上海网络技术有限公司
  • 如何利用服务器做网站沈阳建设工程信息网中项网
  • 推广网站的方法有哪些建设网站账务处理
  • [Windows] 3D软件 Blender 5.0 alpha版
  • 计算机视觉(opencv)——基于 dlib 轮廓绘制
  • 帕累托概念Pareto
  • 海外云服务器压力测试,如何评估服务器性能与稳定性
  • python建设网站常州网站建设智博
  • 电子商务网站软件建设核心山西网站建设推荐
  • 氧气分析中心
  • 量子计算学习笔记(2)