why need resource files ?
1,对于操作系统而言:
CPU----执行代码和控制设备(运算器和控制器)
RAM----存放数据
CPU的控制器将资源文本加载到内存中,然后CPU的运算器进行运算,将结果输出到内存,
然后将结果输出到外设(显示器,硬盘等等)。
2,我们需要固化某些数据和通过配置文件的方式来动态的管理程序和注入数据。
例如:键值对形式的properties文件,其实就是按照规则属性的文本文件(对于文本文件我们
可以简单的修改来达到动态的修改程序)
下面就是通常对ConnectionPool的一个配置文件
jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver jdbc_public.url=jdbc\:db2\://10.137.65.1\:50000/tkmap jdbc_public.username=tkmoa jdbc_public.password=taikang
这里与properties配置文件相关的的java类就是Properties类,它是一个特殊的HashMap,
因为它只是为将properties文件映射到内存中,所以,Properties是一个String,String的 HashTable,对于资源文件一般放在类中或者application文件夹中,
这两种不同的方式有不同用途:
第一:对于只读的配置文件一般放在类中,例如:spring,mybatis,hibernate中的配置文件
第二:对于用户可动态修改的一般放在工程下,例如:在web应用中一般根据应用的路径加上 服务器的路径组成绝对路径来进行读取配置文件,其实,这里也可以利用数据库中的 数据字典。
how apply resource files?
1,资源文件放置的位置:
a, 类路径下。
b,工程某个目录下。
c,国际化的资源文件的放置规则:
放在classpath的根目录下
命名格式:xxx_语言_国家.properties
例如:app_en_US.properties 表示美国英语
welcome.msg=hello world!
app_zh_CN.properties 表示中国汉语
welcome.msg=hello world!
资源文件的编码是使用UTF-8的编码,这样中文也必需是UTF-8的格式,
则需要将中文转换成UTF-8的,你可以使用propertiesEditor插件来进行输入中
ResourceBundle bundle = ResourceBundle.getBundle("app",Locale.CHINA); String welcome = bundle.getString("welcome.msg");
注:java.util.ResourceBundle是加载国际化资源文件的类。
利用此类的getBundle()方法加载classpath下的指定开头的文件名的国际化资源
文件。并且在加载时需要指定加载哪个国家的国际人资源文件。
此实例中的ResourceBundle.getBundle("app",Locale.CHINA);表示加载以"app"开 头的国际化资源文件,并且是中国的(对应的zh_CN)的。
一但国际化资源文件加载上来后,就可以使用ResourceBundle类的 getSring("welcome.msg")方法获取当前内容。
体会:
在编程的世界里就是代码和数据之间的融合,而对象通过属性和方法将其有机的结合到了一起。对一个对
像的使用:
1,准备数据----准备构造对象的数据,一般可以通过构造方法或者setter方法来进行数据的注入。
2,构造对象----这里可以利用工厂模式(Factory.getDefault()),建造者模式(Builder.build()),
new关键字,Class.newInstance()。
3,使用对象----这里应该说是使用对象的方法,因为对象有了数据的注入,那么便可以看成一个独立的 个体,然后传入数据得到相应的结果。那么,对象可以类比于一个微型的CPU:
第一:自身可以通过寄存器进行缓存数据,类似于对象中的属性。
第二:可以通过读取内存中的数据,进行处理后,将数据结果返回内存中,类似于对象的方法
其实,一个软件的架构都要回归到最终的执行对象,因为对象有容纳对象的能力,所以,将其功能进行
模块化,也就是进行对象的拆分,对于计算机中常用的操作在java中也是通过对象来展示,不同对象的
组合,便形成了一个强大的软件。对于,软件的认识就是用从大到小的认识,便是架构软件的能力,但是
你需要熟悉的是各个模块的功能,这样对于你的架构得心应手。
相关推荐
NULL 博文链接:https://tony-mi.iteye.com/blog/2220501
Everything has changed. The social media revolution has irreversibly changed the way we live our lives and conduct our business. There are billions of dollars in advertising moving online, waiting to ...
Wordpress Red passion模板
industry_of_passion
purple_passion
热情Passion是一个多功能的通用库,处理: 字节码修改散列算法文件系统抽象和实用程序反射扫描实用程序SRG映射实用程序解决激情已在JCenter上发布。 您可以使用Maven来访问此库,类似于以下操作:< repositories> ...
抽象精品ppt模板purple_passion059
精品技术类ppt模板industry_of_passion019
概括 投资组合是我的一个充满激情的项目-这是投资者从机器人顾问的进步中受益的新方法,同时仍可以控制资金的分配位置。 我在博客上写了更多有关它的内容。 Create React App入门 该项目是通过引导的。...
语言:English 用漫画SAN或纸纸纸纸纸纸张替换所有字体,并随机化颜色。 想要恶作剧? 需要让自己摆脱互联网? 图形设计了你的热情吗? 这是您的扩展。 这将替换任何网站上的所有字体,其中包含漫画SAN或纸纸纸纸纸纸...
热情 安全密码和敏感数据共享 !!! 过时了! 此存储库已过时,现在由在维护代码。
Passion-pursuit:激情追求码
解压: usb2 ,把USB.inf复制到c(一般在c盘)\WINDOWS\inf , 扣掉电池 开机按音量键+进入工程模式,重启联机(注意不要拔掉数据线) PS:线包里有刷机说明,刷机前花5分钟看一下,把驱动安装好,就不会有此类...
要了解有关Next.js的更多信息,请查看以下资源: -了解Next.js功能和API。 交互式Next.js教程。 您可以查看-欢迎您提供反馈和意见! 在Vercel上部署 部署Next.js应用程序的最简单方法是使用Next.js创建者提供的。...
一个很好的java编写的企业门户网站系统 ,用myeclipse打开,值得学习
Passion-Ver2.0:jsp-> Spring
展示柜:EL Passion展示柜:trophy:
AgarioClone:受网络游戏Agar.io启发的Passion项目