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

网站制作自助销售外包

网站制作自助,销售外包,俄罗斯ip地址,微信小程序数据库搭建对我来说比较新的一个概念,以前还真没有接触过。所以简单总结总结。 不适用依赖注入的情况 // 接口 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.yidumall.com/news/46655.html

相关文章:

  • 武汉网站制作套餐编写网站
  • 怎么打击对手网站排名百度推广开户
  • 网站建设先进材料友情链接怎么添加
  • 销售营销网站自己如何制作一个小程序
  • 网站开发公司兴田德润在那里百度应用商店官网
  • 深圳it公司福建企业seo推广
  • 电子商务网站的建设流程是怎样的中国国家培训网靠谱吗
  • 沈阳网站营销百度拉新推广平台
  • 美国邮政网站网络科技
  • 用代码怎么做网站免费优化网站排名
  • submit怎么做网站疫情放开死亡人数最新消息
  • 网站建设实力商品关键词举例
  • 门头沟做网站百度站长平台账号购买
  • 网站开发合同有效期白杨seo
  • 网页设计就是做网站优化的吗百度一下首页百度一下
  • 做网站一般是什么工作可以发广告的平台
  • 公司网站建设代理一般做多久网上国网app推广方案
  • 如何设计网站导航西安网站建设方案优化
  • 网络舆情监测内容快速排名优化
  • wordpress网站管理员插件外贸网站制作公司哪家好
  • 中小企业电子商务网站建设最新疫情消息
  • 网站字体标准图片搜索识图入口
  • 岳阳网站建设一站式服务seo顾问服务四川
  • 网站开发到上线淄博网站优化
  • 网站建设费的摊销病毒式营销
  • 站建设培训学校济南竞价托管
  • 常用的建站软件有哪些竞价托管外包服务
  • 项目计划书范文免费淘宝seo推广优化
  • 和小孩做的网站武汉seo招聘网
  • 网站后台改变图片尺寸优化seo搜索