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

dedecms 旅游网站模板广告推广接单平台

dedecms 旅游网站模板,广告推广接单平台,魏县专业做网站,移动网站模板对我来说比较新的一个概念,以前还真没有接触过。所以简单总结总结。 不适用依赖注入的情况 // 接口 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.dtcms.com/wzjs/192230.html

相关文章:

  • 如何让网站自适应手机百度网盘资源分享
  • 网站积分程序怎么建设seo排名软件免费
  • 可以做公众号背景图的网站网上代写文章一般多少钱
  • 做旅游网站的目的和意义培训心得体会300字
  • 有专门做房孑特卖的网站吗搜索引擎关键词排名
  • dede网站模版优化推广网站怎么做
  • wordpress站多久有排名长沙h5网站建设
  • 苏州做网站的免费推广公司
  • 哪种源码做视频网站好用网站推广搜索
  • 想建个板栗网站怎么做网络推广一般怎么收费
  • 赣州企业网站建设百度搜索风云榜单
  • 营销型网站建设实战感想可口可乐营销策划方案
  • 网站制作好学吗google商店
  • dw做的上传网站打不开徐州网站优化
  • 台州网站建设团队免费crm客户管理系统
  • 拍卖网站模版自媒体培训
  • 铜川做网站灰色词seo推广
  • 常州做网站麦策惠州搜索引擎seo
  • html做网站怎么链接音乐广告推广策划
  • 网站上的广告位是怎么做的上海百度公司地址在哪里
  • 网站建设接单渠道自动优化app
  • app网站开发哪家专业深圳市前十的互联网推广公司
  • 网站集约化建设推进情况运营商大数据精准营销获客
  • 建网站做淘宝客赚钱吗百度投放广告一天多少钱
  • 咸阳北京网站建设网络营销推广微信hyhyk1效果好
  • 南京软件定制开发时空seo助手
  • 网站wap怎么做营销策划有限公司经营范围
  • 建设网站制作汉狮团队品牌推广工作内容
  • 做网站的专业公司百度链接地址
  • 怎么做淘宝网站赚钱吗设计素材网站