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

网站建站华为云怎么搭建购物网站

网站建站华为云,怎么搭建购物网站,中卫 网红打卡地,网站专业优化1.什么是Spring? spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发 轻量级 1.轻量级(对于运行环境没有额外要求) 2.代码移植性高(不需要实现额外接口) JavaEE的解决方案 Spring更像是一种解决方案,对于控制层,它有Spring…

1.什么是Spring?

spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发

  • 轻量级

1.轻量级(对于运行环境没有额外要求)

2.代码移植性高(不需要实现额外接口)

  • JavaEE的解决方案

        Spring更像是一种解决方案,对于控制层,它有Spring MVC,对于Service层,有对应的Aop可以解决service中的事务控制和日志处理的问题,现有的持久化方案像jdbc、mybatis作整合解决Dao的问题。最大的特点就是每个层次都可以有对应的解决方案。

2.设计模式

1.广义概念   

面向对象设计中,解决特定问题的经典代码

2.狭义概念

GOF4人定义的23种设计模式:工厂、适配器、装饰器、门面、代理、模板等

3.工厂设计模式 

        3.1什么是工厂设计模式

1.概念:通过工厂类、创建对象

        User user=new User()

        UserDao userDao=new UserDaoImpl();

2.好处:解耦合

        耦合:指定是代码间的强关联的关系,一方的改变会影响到另一方

        问题:不利于代码维护

        简单理解:把接口的实现类,硬编码在程序中

  • 通过建立工厂的方式和反射机制创建对象 解耦合
    public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();return userService;}
    }

 通过创建工厂和反射机制的方式创建对象,可以解耦合,减少代码的关联性,可以发现,Class.forName(字符串)可以通过配置文件的方式解耦合,这样代码发生变化时,仅仅只需要更改配置文件中的值。

package basic;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/private static Properties properties;static{//仅仅需要加载一次 读取application.properties文件//第一步回去输入流InputStream resourceAsStream = BeanFactory.class.getResourceAsStream("/application.properties");//第二部 文件内容封装到Propertiesproperties = new Properties();try {properties.load(resourceAsStream);} catch (IOException e) {e.printStackTrace();}}public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName(properties.getProperty("userService"));UserService userService=(UserService)clazz.newInstance();return userService;}
}

         该方法通过读取配置文件的方式,对字符串进行解耦合。如果我们在创建一个UserDao的方式也解决了耦合,但是会发现,当我有一个对象需要解耦合,我们就要提供一个对应的方法。我们希望能够设计一个通用工厂的方式。

     配置文件展示

package basic;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/private static Properties properties;static{//仅仅需要加载一次 读取application.properties文件//第一步回去输入流InputStream resourceAsStream = BeanFactory.class.getResourceAsStream("/application.properties");//第二部 文件内容封装到Propertiesproperties = new Properties();try {properties.load(resourceAsStream);} catch (IOException e) {e.printStackTrace();}}
//    public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//        Class clazz=Class.forName(properties.getProperty("userService"));
//        UserService userService=(UserService)clazz.newInstance();
//        return userService;
//    }/*通用工厂*/public static Object getBean(String beanName) throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName(properties.getProperty(beanName));return clazz.newInstance();}
}

        至此,可以发现,我们提供的工厂方法可以被任意对象所调用,并创建通用的对象,这样我们解决代码耦合性的同时,也解决了一个对象创建一个工厂的问题,减少了代码的冗余。

3.2通用工厂的使用方式

1.定义类型

2.通过配置文件的配置告知工厂(application.properties)

key=value

3.通过工厂来获得类的对象

        BeanFactory.getBean(key)

总结

         通过本文的学习,我们了解了Spring框架的基本概念以及如何通过工厂设计模式和反射机制实现代码的解耦。Spring的IoC和AOP特性使得企业级应用开发更加简单和高效。工厂模式通过将对象的创建和使用分离,进一步提高了代码的可维护性和扩展性。希望本文能帮助你更好地理解Spring和设计模式的应用。

http://www.dtcms.com/wzjs/569156.html

相关文章:

  • 建站平台加盟建设企业网站企业网上银行登录官网下载
  • 网站开发的过程防控措施持续优化
  • 商丘做网站建设国外网站建设软件有哪些
  • 成都网站优化平台wordpress悬浮
  • 建设银行官方网站首页企业网络科技公司起名字大全免费
  • 长沙高端网站建设服务在wordpress中图标
  • 运营网站赚钱企业网站建设发展平台
  • 网站想举报怎么做朗域装饰公司怎么样
  • 加强学校就业信息网站建设和管理线上注册公司入口
  • 北仑静态网站建设网站缓存优化怎么做
  • 旅游网站建设的组织性购物型网站怎么快速被百度收录
  • 电子商务网站开发规划腾讯云建立wordpress
  • 影视类网站建设莱芜都市网最新招聘信息
  • 汕头建站程序深圳龙岗网站建设公司
  • 形容网站做的好处北京互联网公司建网站
  • 商务咨询网站源码app网站建设宣传方案
  • 网站活动策划方案辽宁网站开发
  • 广州网站外包建个购物网站要多少钱
  • 无锡华诚建设监理有限公司网站wordpress 主页幻灯片
  • 坡头手机网站建设科技网站 网站建设
  • 小白如何建设网站jsp做网站前端实例
  • 瑞安建设公司网站wap网站开发视频教程
  • 怎么通过做网站来赚钱wordpress附件存放位置
  • 营销网站建设免费网站打不开了什么原因
  • 什么是建设网站的主题苏州专业网站设计制作公司
  • 平邑县建设局网站电子商务和网络营销哪个好
  • 网站怎么做才不会被封关于网站建设方案的案例
  • 上虞中国建设银行官网站阿泰勒北京网站建设
  • 服装定制网站模板公司起名字大全免费2021
  • jquery 手机网站开发网站开发项目交接