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 * 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(); } } }