欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring纯注解开发

程序员文章站 2022-03-06 20:56:46
...

Spring纯注解开发

脱离了xml配置的开发,直接把数据保存在Spring内存里面,

首先学习的是 @Configuration 注解
这个注解就是说明这个类是直接放在Spring内存中的不经过xml配置,在类上面写上这个之后,这个类就直接存在于Spring内存之中

@Configuration   //加上这个注解之后就表示这是一个Spring配置类
public class SpringConfiguration(){}

虽然这个类它不经过xml配置,但是其他类需要,如果我们要让这个类获得其他的类在xml里面的配置应该怎么办?------------我们就需要学习注解 @ComponentScan(“需要扫描的包”)---------目的就是替代xml里面的组件扫描操作,这样我们就能得到应该包里面所有的类了而且不经过xml配置

@Configuration   //加上这个注解之后就表示这是一个Spring配置类
@ComponentScan("com.zhiyou100")  //加上这个替代组件扫描   内部写的要扫描的包
public class SpringConfiguration{}

现在问题是,那么多的包,那么多的类,我们要准确的找出我们想要的哪个类的对象应该怎么办???---------现在我们就要学习 @Bean 注解 首先@Bean只能写在方法上面,并且此方法返回一个类对象,我们只需要调用方法就能获得我们想要的对象了

public class WireThirdLibClass {
    @Bean
    public ThirdLibClass getThirdLibClass() {
        return new ThirdLibClass();
    }
}

上面我们以及能完全的操作,但是如果我们像完全不会借助xml,我们想要加载数据源怎么办???
下面我们就说到 @PropertySource 此注解 目的就是记载数据源,把数据源读取到Spring中
先写一个db.properties文件

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis01
jdbc.username=root
jdbc.password=root

再写注解代码

@PropertySource(" db.properties")//读取配置文件
public class DBUtil{
    //根据  key-value键值对 , 来给属性赋值
    @Value("${jdbc.driverClass}")  
    private String driver;
    @Value("${jdbc.url}")
     private String url;
    @Value("${jdbc.username}")
     private String username;
    @Value("${jdbc.password}")
     private String password;
}

这样就把我们配置文件里面的数据,配置给了我们类里面的属性,我们就能够调用了

上面说到了用@PropertySource读取配置文件 如果我们想要读取其他的xml文件里面的信息我们应该怎么办 我们就需要用到[email protected]----此注解来引入文件
比如我们想要引入一个类的字节码文件

//这是主配置类
@Configuration   //加上这个注解之后就表示这是一个Spring配置类
@ComponentScan("com.zhiyou100")  //加上这个替代组件扫描   内部写的要扫描的包
@Import(DBUtil.class)//在主配置类里面引入DBUyil配置类
public class SpringConfiguration{}

我们接下来就是测试,如果我们想要把我们类里面的数据给测似乎类测试这么操作,我们没有xml配置文件所以不能使用 new ClassPathXmlApplicationContext(“applicationContext.xml”);
我们只能使用 AnnotationConfigApplicationContext

@Test
public void test01(){
    new AnnotationConfigApplicationContext("对应配置类名.class")
}
相关标签: spring spring