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

门户网站建设报告哦广告网站素材

门户网站建设报告哦,广告网站素材,有框架有模板怎么做网站,8x2558xcom直接观看对我来说比较新的一个概念,以前还真没有接触过。所以简单总结总结。 不适用依赖注入的情况 // 接口 public interface GreetingService {void greet(); }// 实现类 public class EnglishGreeting implements GreetingService {public void greet() {System.out.pri…

对我来说比较新的一个概念,以前还真没有接触过。所以简单总结总结。

不适用依赖注入的情况

// 接口
public interface GreetingService {void greet();
}// 实现类
public class EnglishGreeting implements GreetingService {public void greet() {System.out.println("Hello!");}
}// 使用者类
public class Client {private GreetingService service;public Client() {// 写死了具体实现this.service = new EnglishGreeting();  // 强耦合}public void sayHello() {service.greet();}
}// main 方法
public class Main {public static void main(String[] args) {Client client = new Client();client.sayHello();  // 输出:Hello!}
}

使用依赖注入的情况。

// 接口
public interface GreetingService {void greet();
}// 实现类
public class EnglishGreeting implements GreetingService {public void greet() {System.out.println("Hello!");}
}// 使用者类,不管 new,交给容器
public class Client {@Resourceprivate GreetingService service;public void sayHello() {service.greet();}
}// 模拟注入容器
public class BeanFactory {private Map<String, Object> beans = new HashMap<>();public void register(String name, Object bean) {beans.put(name, bean);}public void inject(Object target) throws Exception {Class<?> clazz = target.getClass();for (Field f : clazz.getDeclaredFields()) {if (f.isAnnotationPresent(Resource.class)) {Object bean = beans.get(f.getName());f.setAccessible(true);f.set(target, bean);}}}
}// main 方法
public class Main {public static void main(String[] args) throws Exception {BeanFactory factory = new BeanFactory();factory.register("service", new EnglishGreeting());Client client = new Client();factory.inject(client);  // 自动注入client.sayHello();  // 输出:Hello!}
}

@Resource修饰成员变量,只要成员变量名是register的名字,就自动初始化成注册的bean。@Resource修饰方法,是根据方法的参数名来匹配。比如:

        @Resource

        public void setZhService(GreetingService zhService) {

            this.zhService = zhService;

        }

这里就会用zhService去查找之前的register。

最后的f.set(target, bean);// 其实就相当于 client.service= EnglishGreeting;

其实从比对可以看出,就是把bean保存在Map<String, Object> beans里面。通过String去查找具体要用什么类。

好吧,感觉就是继续解耦了一些,把很多实现类由一个map统一管理而不是自己管理了。

具体有什么好处以后再看吧。。。

http://www.yayakq.cn/news/126900/

相关文章:

  • 怎样开网站卖东西优创智汇高端网站建设
  • 四川高速公路建设开发集团有限公司网站山东seo
  • 网站建设费用分析精彩 网站
  • 网站关键词没有指数中国建筑人才招聘网官网
  • 房产公司网站建设方案免费网址2021年能用的
  • 门户网站需要多少空间四川建设厅官方网站证件查询
  • 别人做的网站怎么打开吗中英企业网站系统
  • 国外酷炫flash网站毕设做网站答辩稿
  • 东营做网站品牌推广策划方案
  • wordpress国内视频网站吗博物馆展厅设计
  • 网站建设平台天梯建站网站建投网站深圳宝安网站建设公司推荐
  • 百度文库 旅游网站建设方案书建设部咨询资质网站
  • 福建建设职业管理中心网站免费个人网站建站
  • 什么网站代做毕业设计比较好自己网站上放个域名查询
  • 公司网站维护由那个部门做网站建设招标公告
  • 网站外链建设书籍网站做专题页面
  • 北京做家教的的网站怎么样才能让网站
  • 国外免费网站建设做排行榜的网站
  • 孝感网站建设软件深圳品牌营销网站建设
  • 网站改版 目的服装公司网站策划书
  • 自适应型网站建设百度地图导航2022最新版下载
  • opkg 做网站的包叫什么名字大兴安岭商城网站开发设计
  • 公司网站建设作用写一个有图片的网页
  • 门户网站建设教程整站seo怎么做
  • tp框架做商城网站怎么用缓存自适应网站案例源码
  • 揭阳网站开发定制上海百度推广方案
  • 一个彩票网站建设软件开发公司介绍怎么写
  • 乐山网站公众号建设WordPress进
  • 乐陵市人力资源中心网站网站建设培训教程
  • 官方网站建设手机银行做网站 传视频 用什么笔记本好