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

网站上传的流程图企业样本设计公司

网站上传的流程图,企业样本设计公司,wordpress q a,网站建设系统分析包括哪些目录 BeanFactory开发流程 ApplicationContext BeanFactory与ApplicationContext对比 基于XML方式的Bean的配置 自动装配 BeanFactory开发流程 这里的第三方指的是Spring提供的BeanFactory#xff0c;Spring启动时会初始化BeanFactory#xff0c;然后读取配置清单#…目录 BeanFactory开发流程 ApplicationContext BeanFactory与ApplicationContext对比 基于XML方式的Bean的配置 自动装配 BeanFactory开发流程 这里的第三方指的是Spring提供的BeanFactorySpring启动时会初始化BeanFactory然后读取配置清单xml文件获取需要被加载的bean。实现上面流程图的具体代码如下 创建beans.xml文件 public class Test {public static void main(String[] args) {//定义出一个bean工厂DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();//读取xml文件的读取器XmlBeanDefinitionReader reader new XmlBeanDefinitionReader(beanFactory);//读取配置文件reader.loadBeanDefinitions(beans.xml);UserService userService (UserService) beanFactory.getBean(userService);System.out.println(userService);} } 因为我们在开发中要遵循三层架构业务层需要定义数据层那么接下来我们再在xml文件中指定要一个数据层bean。代码如下 public class UserServiceImpl implements UserService {//该方法由beanFactory来调用set注入public void setUserDao(UserDao userDao){System.out.println(由bean工厂调用该set方法);} } 需要注意的是需要property标签中的属性的name应该是setXxx()方法中的Xxx第一个子母小写之后的字符ref标签指的是bean定义的id。接下来我们查看Test类的运行结果 public class Test {public static void main(String[] args) {//定义出一个bean工厂DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();//读取xml文件的读取器XmlBeanDefinitionReader reader new XmlBeanDefinitionReader(beanFactory);//读取配置文件reader.loadBeanDefinitions(beans.xml);UserService userService (UserService) beanFactory.getBean(userService);} } 执行结果截图  BeanFactory是Spring中最重要的核心类下文中的ApplicationContext虽然叫做Spring容器但实际上在该类中最后调用的还是BeanFactory。 ApplicationContext ApplicationContext称为Spring容器内部封装了BeanFactory比BeanFactory功能更丰富使用ApplicationContext时xml文件配置我们习惯叫做applicationContext.xml。接下来是一个示例代码 public class ApplicationContextTest {public static void main(String[] args) {ApplicationContext context new ClassPathXmlApplicationContext(beans.xml);Object userService context.getBean(userService);} } BeanFactory与ApplicationContext对比 BeanFactory是Spring的早期接口称为Spring的Bean工厂ApplicationContext是后期更高级接口称之为Spring 容器ApplicationContext在BeanFactory基础上对功能进行了扩展例如: 监听功能、国际化功能等。BeanFactory的API更偏向底层ApplicationContext的API大多数是对这些底层API的封装;Bean创建的主要逻辑和功能都被封装在BeanFactory中ApplicationContext不仅继承了BeanFactory而且ApplicationContext内部还维护着BeanFactory的引用所以ApplicationContext与BeanFactory既有继承关系又有融合关系。Bean的初始化时机不同原始BeanFactory是在首次调用getBean时才进行Bean的创建而ApplicationContext则是配置文件加载容器一创建就将Bean都实例化并初始化好 基于XML方式的Bean的配置 XmI配置方式 功能描述 bean idclass Bean的id和全限定名配置 bean name 通过name设置Bean的别名通过别名也能直接获取到Bean实例 bean scope Bean的作用范围BeanFactory作为容器时取值singleton和prototype bean lazy-init Bean的实例化时机是否延迟加载。BeanFactory作为容器时无效 bean init-method Bean实例化后自动执行的初始化方法method指定方法名 bean destroy-method Bean实例销毁前的方法method指定方法名 bean autowirebyType 设置自动注入模式常用的有按照类型byType按照名字byName bean factory-bean factory-method/ 指定哪个工厂Bean的哪个方法完成Bean的创建 默认情况下单纯的Spring环境的Bean的作用范围有两个Singleton与Prototype Singleton单例默认值Spring容器创建的时候就会进行Bean的实例化并存储到容器内部的单例池中每次getBean时都是从单例池中获取相同的Bean实例。Prototype原型Spring容器初始化时不会创建Bean实例当调用getBean时才会实例化Bean每次getBean都会创建一个新的Bean实例。 Spring实例化Bean的两种方式如下 一通过构造方法实例化 默认在xml文件中配置的信息都是调用了无参构造器但是如果我们需要参数时需要添加constructor-arg标签该标签标识向方法中传递参数。 beansbean iduserService classcom.zmt.service.impl.UserServiceImpl!-- 默认采用无参构造器但如果需要参数则需要进行配置 --constructor-arg name参数名称 value参数值/constructor-argproperty nameuserDao refuserDao/property/beanbean iduserDao classcom.zmt.dao.impl.UserDaoImpl/bean /beans 二通过调用自定义的工厂方法对Bean进行实例化 静态工厂方法实例化Bean public class MyBeanFactory {public static UserDao getUserDao(){//在实例化Bean之前我们可以进行一些业务逻辑操作return new UserDaoImpl();} } beans!--指定执行自定义的Bean工厂的指定方法去实例化Bean--bean iduserDao1 classcom.zmt.factory.MyBeanFactory factory-methodgetUserDao/beanbean iduserService classcom.zmt.service.impl.UserServiceImplproperty nameuserDao refuserDao/property/beanbean iduserDao classcom.zmt.dao.impl.UserDaoImpl/bean/beans 可以看到执行结果一个是通过无参构造器创建出来的Bean一个是通过自定义的静态工厂创建的。 实例工厂方法实例化Bean 与静态工厂方法实例化Bean区别在于我们需要将工厂类也加载为Bean对象然后通过该Bean对象去实例化 public class MyBeanFactory1 {public UserDao getUserDao(){//在实例化Bean之前我们可以进行一些业务逻辑操作return new UserDaoImpl();} } beans!--加载工厂Bean--bean idmyBeanFactory1 classcom.zmt.factory.MyBeanFactory1/bean!--通过工厂Bean去获取需要的对象--bean iduserDao2 factory-beanmyBeanFactory1 factory-methodgetUserDao/bean!--指定执行自定义的Bean工厂的指定方法去实例化Bean--bean iduserDao1 classcom.zmt.factory.MyBeanFactory factory-methodgetUserDao/beanbean iduserService classcom.zmt.service.impl.UserServiceImplproperty nameuserDao refuserDao/property/beanbean iduserDao classcom.zmt.dao.impl.UserDaoImpl/bean /beans 实现FactoryBean规范延迟实例化Bean //需要指定FactoryBean的泛型 public class MyBeanFactory2 implements FactoryBeanUserDao {//该方法在执行getBean的时候去执行Overridepublic UserDao getObject() throws Exception {return new UserDaoImpl();}//获取该Bean工厂产生的Bean类型Overridepublic Class? getObjectType() {return UserDao.class;} } beans!--Bean名称是userDao3但加载的是工厂类--bean iduserDao3 classcom.zmt.factory.MyBeanFactory2/bean!--加载工厂Bean--bean idmyBeanFactory1 classcom.zmt.factory.MyBeanFactory1/bean!--通过工厂Bean去获取需要的对象--bean iduserDao2 factory-beanmyBeanFactory1 factory-methodgetUserDao/bean!--指定执行自定义的Bean工厂的指定方法去实例化Bean--bean iduserDao1 classcom.zmt.factory.MyBeanFactory factory-methodgetUserDao/beanbean iduserService classcom.zmt.service.impl.UserServiceImplproperty nameuserDao refuserDao/property/beanbean iduserDao classcom.zmt.dao.impl.UserDaoImpl/bean/beans 延迟加载Bean实际上是先加载了工厂Bean类当需要用到Bean时会从单例池中获取FactoryBean后调用该对象中的getObject()方法获取到真正的的Bean对象并将该Bean对象缓存在factoryBeanObjectCache中当使用到该Bean对象时从该Map中获取。 自动装配 我们通过编写property标签进行的注入叫做手动注入而自动装配是不需要编写property标签的而是在bean标签中使用autowire属性来实现自动注入aotuwire的值有两个byName、byType byName通过属性名自动装配去匹配setXxx与idxxx是否一致byType通过Bean的类型从容器中匹配匹配出多个相同Bean类型时报错 UserServiceImpl存在一个setUserDao方法因此我们可以这么编写同样可以将属性注入到UserServiceImpl中 beansbean iduserService classcom.zmt.service.impl.UserServiceImpl autowirebyName/beanbean iduserDao classcom.zmt.dao.impl.UserDaoImpl/bean /beans
http://www.zqtcl.cn/news/789279/

相关文章:

  • 网站建设及相关流程北京网站备案域名
  • 汉字叔叔花了多少钱做网站微商城科技
  • 网站代理被抓html网站开发实战
  • 如何建立免费的网站网站copyright写法
  • 官方网站下载12306合肥有没有做网站的单位
  • 甘露园网站建设网站框架图片
  • 做网站怎样赚卖流量石家庄网站建设联系电话
  • wordpress 图片网站本地免费发布信息网站
  • 建设网站和别人公司重名新乡建设招标投标网站
  • 四川省建设厅网站证想开个网站怎样开公司
  • 做机械一般做那个外贸网站电商软件开发费用
  • 网站外链坏处龙岗网站设计信息
  • 郑州网站建设乙汉狮网络搜索优化网络推广
  • Dw做html网站百度推广竞价排名
  • 北京市电力建设公司网站万云网络网站
  • 校园网站开发方案做网站现在用什么语言
  • 网站建设学什么书中联建设集团股份有限公司网站
  • 制作个人业务网站go 做视频网站
  • 域名对网站建设有什么影响吗找人做仿网站
  • 网站建设翻译谁提供爱心代码html简单
  • 上海专业网站建站公司asp.net商务网站 包括哪些文件
  • 网站制作的重要流程营销团队找产品合作
  • 网站治做啊app易居销售系统
  • 定制跟模板网站有什么不一样如何做网站的订阅
  • 黑龙seo网站优化做网站,图片显示不出来
  • aspcms网站无法打开东莞网站推广方案
  • aspcms企业网站模板互联网推广模式有哪些
  • 高端 网站设计公司怎样开通微信公众号平台
  • 陕西省建设监理协会网站证书城乡建设管理局网站
  • 网站建设价目表建设商城网站报价