有如下的配置文件:confifig.properties @Info(name="卡卡西" ,tags={"复制忍者" , "六代火影"}) @Organization(name="木叶村" ,size=556) public class Ex1{ } version=1.0 appName=注解的应用案例 id=123456789 title=java从入门到入土 size=120 druid.driverClassName=com.mysql.cj.jdbc.Driver druid.url=jdbc:mysql://localhost:3306/mybatis druid.username=root druid.password=root123 有如下的类:public class BaseDAO{ @Value(name="druid.driverClassName") private static className; @Value(name="druid.url") private static url; @Value(name="druid.username") private static username; @Value(name="druid.password") private static password; static{ // 在静态块中参考课堂的案例,将配置文件中对应 的属性值绑定到上面的四个静态变量中。 } public static void showInfo(){ // 输出上面4个静态成员变量的值 } 根据题目意思定义一个Value注解。 完成BaseDAO中的静态块中的代码和showInfo方法中的代 码编写。
时间: 2023-05-25 12:02:35 浏览: 72
定义Value注解如下:
```java
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Value {
String name() default "";
}
```
完整的BaseDAO代码如下:
```java
public class BaseDAO {
@Value(name="druid.driverClassName")
private static String className;
@Value(name="druid.url")
private static String url;
@Value(name="druid.username")
private static String username;
@Value(name="druid.password")
private static String password;
static{
try(InputStream input = BaseDAO.class.getClassLoader().getResourceAsStream("config.properties")){
Properties prop = new Properties();
prop.load(input);
className = prop.getProperty("druid.driverClassName");
url = prop.getProperty("druid.url");
username = prop.getProperty("druid.username");
password = prop.getProperty("druid.password");
} catch(IOException e){
e.printStackTrace();
}
}
public static void showInfo(){
System.out.println("driverClassName: " + className);
System.out.println("url: " + url);
System.out.println("username: " + username);
System.out.println("password: " + password);
}
}
```
静态块中的代码使用了Properties类来读取配置文件中的信息,然后将其绑定到静态变量中。showInfo方法可以输出这些静态变量的值。