@Configuration注解

/ Spring / 没有评论 / 297浏览

在其它的文章中我们都是通过spring的配置文件的方式来实例化对象的,并且我们已经演示了该方式的使用。但在有些时候如果涉及到一些安全级别比较高的项目时,是不能将一些敏感信息直接放到配置文件中的,因为这样是很不安全的。那如果这时我们应该怎么办呢?

不用担心spring为我们提供了@Configuration注解,用它可以将一个对象信息通过注解的方式实例化,而不必必须使有spring配置文件的方式初始化。也就是可以直接将一个实体对象实例化。这样当我们涉及到敏感信息时,采用这种方式初始化对象时,敏感的信息就不会轻易泄漏了。因为当项目部署后,用此方式初始化的对象就会编译成字节码文件了,相对配置文件的方式,安全级别提高了。当然这种方式还不是最安全的,因为字节码文件还是可以进行反编译的。但如果我们想要做到万无一失时,可以采用字节码混淆技术,这样,就可以保证我们的敏感信息,不会被他人获取到了。字节码混淆技术有很多,这里就不在做过多介绍了。下面我们看一下怎么用@Configuration注解定义一个对象,并启动IOC容器。

@Configuration
public class Beans {
@Bean(name = "car")
public Car buildCar() {
Car car = new Car();
car.setBrand("蔚领");
car.setMaxSpeed(100);
return car;
}
}
/**
* Configuration注解启动IOC容器
*/
@Test
public void configuration() {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Beans.class);
Car car = applicationContext.getBean("car", Car.class);
System.out.println(car);
}
Car{brand='蔚领', color='null', maxSpeed=100}