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

网络公司 网站建设网站建设犭金手指a排名15

网络公司 网站建设,网站建设犭金手指a排名15,手机站网站布局,如何自定义wordpress登录IOC#xff1a;Inversion of control控制反转-使用对象时由程序中主动new对象转为外部提供对象。 此过程中对象创建控制权由程序内部转为外部#xff0c;此思想称为控制反转。 Spring技术对IOC思想提供了实现#xff1a; Spring提供一个容器#xff0c;称为IOC容器#x…IOCInversion of control控制反转-使用对象时由程序中主动new对象转为外部提供对象。 此过程中对象创建控制权由程序内部转为外部此思想称为控制反转。 Spring技术对IOC思想提供了实现 Spring提供一个容器称为IOC容器用来充当IOC思想的“外部” IOC容器负责对象的创建、初始化等工作被创建的对象在IOC容器中被称为Bean 适合交给容器管理的对象表现层对象、业务层对象、数据层对象、工具对象 不适合交给容器管理的对象封装实体的域对象 !-- 1.pom文件中导入Spring对应的坐标spring-context对应的版本是5.3.21-- dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.21/version /dependency !-- 2.配置bean-- bean idbookDao classcom.kxg.exercise.dao.impel.BookDaoImpel namebookDao1,bokDao2 scopeprototype/ bean标签属性介绍 id属性给bean起名字 class属性表示给bean定义类型 name属性给bean起别名。可以定义多个是用逗号、分号、空格分隔 scope属性定义bean的作用范围。singleton单例默认 prototype非单例 程序内部获取bean可以通过id或name如果两个都没有得到将抛出异常NoSuchBeanDefinition // 3.在程序中获取容器 ApplicationContext ctx new ClassPathXmlApplicationContext(ApplicationContext.xml);// 可以使用文件系统配置路径new ClassPathXmlApplicationContext(绝对路径)// 一次获取多个容器new ClassPathXmlApplicationContext(a.xml,b.xml); // 4.获取容器中的bean// 方法一按照bean名称获取 BookDao bookDao1 (BookDao)ctx.getBean(bookDao);// 方法二按照bean类型获取类型唯一 BookDao bookDao2 ctx.getBean(BookDao.class);// 方法三使用bean名称获取指定类型 BookDao bookDao3 ctx.getBean(bookDao, BookDao.class); 经过上面几步对象的创建成功由程序内部转为程序外部 DIDependency Injection-依赖注入 在容器中建立bean与bean之间的依赖关系的整个过程成为依赖注入 !-- 在spring文件中配置类与类之间的关系service与dao-- bean idbookService classcom.kxg.exercise.service.impel.BookServiceImpelproperty namebookDao refbookDao/ /bean property标签表示配置当前bean的属性 name表示配置哪一个具体的属性 ref表示参照哪一个bean两个类的绑定 依赖注入的目的充分解耦 通过控制反转、依赖注入对象可以直接从外部获取并且获取到的bean已经绑定了所有的依赖 这样虽然实现了解耦但是同时也出现了很多新问题 bean类中的成员变量怎样实现初始化 bean是怎样进行实例化的 bean的生命周期 外部bean怎样进行管理 因此Spring也提供了很多解决方案。 依赖注入的方式setter注入、构造器注入 setter注入 简单数据类型在bean类中设置set方法xml文件中使用property标签value属性注入 引用数据类型在bean类中设置set方法xml文件中使用property标签ref属性注入建立关系 property nameconnectNumber value10/ property namebookDao refbookDao/ 构造器注入 简单类型bean类中提供构造方法xml文件中constructor-atg标签中name、value属性 引用类型bean类中提供构造方法xml文件中constructor-atg标签中name、ref属性 !-- 引用类型 -- constructor-arg namebookDao refbookDao/ !-- 简单数据类型 --!-- 通过参数名称匹配没有达到程序解耦的问题 -- constructor-arg nameconnectNumber value55/ constructor-arg namedatabaseName valuemysql/!-- 通过参数值类型进行匹配试图实现解耦问题 -- constructor-arg typeint value55/ constructor-arg typejava.lang.String valuemysql/!-- 通过参数前后位置匹配试图实现解耦问题 -- constructor-arg index1 value55/ constructor-arg index2 valuemysql/ 通过依赖注入的不同方式第一个问题得到了解决 bean的实例化 构造方法调用类中的无参构造创建实例对象 静态工厂调用工厂类中的静态方法实例化对象 1.添加factory-method属性创建类不能仅配工厂名。否则仅仅创建的是工厂类不是bean对象 2.factory工厂类中方法添加static才能创建对象 // 静态工厂-static public static BookDao getBookDao() {System.out.println(factory setup...);return new BookDaoImpel(); } bean idbookDaoFactory classcom.kxg.exercise.factory.BookDaoFactory factory-methodgetBookDao/ 实例工厂调用静态类中的非静态方法 容器中配置工厂类 容器中factory-bean找到相应的工厂类factory-method找到对应的方法 // 非静态工厂 public BookDao getBookDao_() {System.out.println(factory2 setup...);return new BookDaoImpel(); } !--非静态工厂-- bean idbookDaoFactory1 classcom.kxg.exercise.factory.BookDaoFactory/ bean idbookDao1 factory-methodgetBookDao_ factory-beanbookDaoFactory1/ 使用FactoryBean实例化 创建相关FactoryBean类实现FactoryBean接口实现相关的创建方法getObject 容器中加载FactoryBean类 public class bookDaoFactoryBean implements FactoryBeanBookDao {// 得到bean实例代替原始实例工厂中创建对象的方法Overridepublic BookDao getObject() throws Exception {System.out.println(FactoryBean...);return new BookDaoImpel();} } !-- FactoryBean-- bean idbookDao2 classcom.kxg.exercise.factory.bookDaoFactoryBean/ BookDao bookDao5 (BookDao) ctx.getBean(bookDao2); System.out.println(bookDao5); bean生命周期 bean生命周期控制从bean创建后到销毁前做的一些事情 1.类中提供生命周期的控制方法xml文件中配置生命周期的方法 2.类实现InitializingBean、DisposableBean接口 初始化容器创建对象内存分配执行构造方法执行属性注入set执行bean初始化方法 使用bean执行业务操作 关闭/销毁容器执行bean销毁方法 bean销毁时机容器关闭前触发bean的销毁 关闭容器的方法 1.手动关闭容器ConfigurableApplicationContext接口close()操作 2.注册关闭钩子在虚拟机退出前先关闭容器在退出虚拟机ConfigurableApplicationContext接口registerShutdownHook() 接下来就到了最后一个问题外部bean怎样管理 以数据源对象为例 1.spring中开启context命名空间xmlns:contexthttp://www.springframework.org/schema/context 2.在context空间中加载properties文件   system-properties-modeNEVER不加载系统属性          locationjdbc1.properties,jdbc2.properties加载多个properties文件          locationclasspath:*.properties加载路径下的所有properties文件标准格式         locationclasspath*:*.properties从类路径或jar包中搜索并加载properties文件    3.使用属性占位符${}读取properties文件中的属性 context:property-placeholder locationclasspath:*.properties/ bean classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}/ /bean // 创建数据源对象 DataSource dataSource1 (DataSource) ctx.getBean(dataSource1); System.out.println(dataSource1); 此外spring还提供了依赖自动装配直接在bean标签中使用autowire属性 按类型autowirebyType 使用类型装配时必须保障容器中相同类型的bean唯一 按名称autowirebyName 使用名称自动装配时必须保障容器中具有指定名称的bean 1.自动装配用于引用类型注入不适用于简单类型 2.自动装配优先级低于setter注入与构造器注入同时出现时自动装配失效
http://www.pierceye.com/news/374949/

相关文章:

  • 做羞羞的事的视频网站百度热搜榜怎么打开
  • ui怎样做网站青岛网页设计招聘
  • 建设企业网站e路护航官网企业端学校网站建设工作方案
  • 做网站运营经理的要求网站创建知识
  • ec网站域名app开发策划书范文
  • 免费做图网站设计作品发布平台
  • 网站砍价活动怎么做公司网站更新
  • 高要网站建设wordpress比织梦安全吗
  • 闵行网站建设多久能见效果城市建设模拟游戏网站
  • 誉铭摄影网站网页布局设计技术包括
  • 专门做定制化的网站成都网站推广技巧
  • 有啦域名网站怎么做北京织梦网站建设
  • 公司网站后台怎么添加内容asp网站gzip压缩
  • app浏览器源码大全网站广州网站建设 .超凡科技
  • 免费做网站的方法h5手机网站怎么做
  • 郑州营销型网站制作运营随州网站seo诊断
  • 怎么修改网站备案信息外国的网站是什么网站
  • 小企业网站建设多少钱软件免费下载的网站大全
  • 免费承接网站建设公司网站备案资料
  • 深圳微信网站制作免费加盟一件代发货源网站
  • 青岛外贸网站建站公司东莞市专业的网页设计制作报价
  • 长沙网站设计工作室wordpress手机分享插件下载地址
  • 网站开发用什么图片格式最好网站数据库搬家
  • 宜宾建设网站企业所得税税负率
  • 广州网站二级等保上海企业网站模板
  • 做任务赚话费的网站网站直播间 是怎么做的
  • 合肥住房城乡建设部的网站传媒公司是干嘛的
  • 网站建设公司盈利深圳保障性住房在哪里申请
  • 网站建设(信科网络)谷歌推广怎么开户
  • 活动策划网站有哪些温州网页设计美工