12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package com.sf.day22._01_properties;
- import com.sf.day22._01_properties.dt.Result;
- import com.sf.day22._01_properties.ex.LoginException;
- import com.sf.day22._01_properties.service.ILoginService;
- import com.sf.day22._01_properties.service.impl.LoginServiceImpl;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Element;
- import org.dom4j.io.SAXReader;
- import org.junit.Test;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Properties;
- public class ProeprotiesTest {
- // 加载配置文件内容 resources db.properties 内容
- // Thread.currentThread().getContextClassLoader().getResourcesAsStream();
- @Test
- public void test() throws IOException {
- // 获取类加载器
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
- // 通过类加载器获取resources db.properties 内容转成输入流
- // 我们以后resources当中可能有很多配置文件 name 就是我们配置文件的名字
- // 第二种方式相对于第一种方式自己new File(路径) 更好, 因为我是没有在这里写死盘符路径的
- InputStream inputStream = contextClassLoader.getResourceAsStream("db.properties");
- // 创建Properties
- Properties properties = new Properties();
- properties.load(inputStream);
- // 获取配置文件当中账号和密码
- String username = properties.getProperty("username");
- String password = properties.getProperty("password");
- System.out.println(username);
- System.out.println(password);
- }
- /**
- * 1 创建Data 然后在Data 的静态代码块中初始化一个Map<Long,User>
- * 1 User(1L,"zhangsan","123")
- * 2 User(2L,"lisi","567")
- * 3 User(3L,"wangwu","666")
- * 2 在配置文件当中定义账号和密码
- * 3 完成登录功能
- * 要求:1 面向接口编程
- * 2 在接口实现类当中判断配置文件当中账号和密码 与 map 当中账号密码做对比
- * 3 如果成功 在数据{code:200,msg:"操作成功"};
- * 4 如果失败 {code:500,msg: "登录失败"}
- * 5 扩展:登录成功或者登录失败 往d:\\login.txt 当中添加 姓名 +"--" +时间 + 成功/失败
- * 注意如果账号密码不正确要求在方法方法中抛出LoginException("登录失败")
- * 面向对象: 静态代码块 接口 IO 自定义异常 trycach
- **/
- @Test
- public void test2() throws IOException, DocumentException {
- /**
- * 需要加载db.properties 文件内容
- */
- InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.xml");
- // Properties properties = new Properties();
- // properties.load(inputStream);
- // 采用的xml
- SAXReader saxReader = new SAXReader();
- Document document = saxReader.read(inputStream);
- // 1 获取根元素
- Element element = document.getRootElement();
- // 2 可以根据跟元素获取username 和password
- Element usernameEle = element.element("username");
- String username = usernameEle.getText();
- Element passwordEle = element.element("password");
- String password = passwordEle.getText();
- ILoginService loginService = new LoginServiceImpl();
- try{
- loginService.login(username,password);
- System.out.println(new Result(200,"登录成功"));
- }catch (LoginException e){
- e.printStackTrace();
- System.out.println(new Result(500,e.getMessage()));
- }finally {
- inputStream.close();
- }
- }
- }
|