回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
Spring配置元数据的方式主要有三种方式:
- 基于XML文件配置元数据
- 基于注解配置元数据
- 基于Java类配置元数据
之前举了很多例子都是基于XML文件配置元数据,下面简单说说基于注解和基于Java类配置元数据
基于注解配置元数据
其实无论是XML文件还是注解,本质上都是为Spring容器提供Bean定义的信息,采用XML文件和采用注解的区别就是,采用XML文件配置元数据时,Bean定义信息和Bean实现类本身是分离的,而采用注解配置元数据时,Bean定义信息可以在Bean实现类上直接标注注解实现。
前面刚提到将一个类声明名为bean的注解有哪些,其实用注解配置元数据还是非常简单的,就是在类上面加上注解就好了,如下
@Component
public class LuRenZhang{
.......
}
除了在类上面直接加注解,还得在XML文件中定义下扫描包用于扫描注解定义的Bean,如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="dao" />
</beans>
然后就可以进行依赖注入了,通过@Autowired注解,如下
@Service
public class LuRenService{
@Autowired //将上面定义的Bean注入
private LuRenZhang luRenZhang;
......
}
基于Java类配置元数据
基于Java类配置元数据也很简单,需要两个注解,在类上标注@Configuration,标注这个注解的类表示其是作为Bean定义的来源,在类中的方法上标注@Bean定义Bean,如下
先写个User类
class User{
private String name;
private int age;
public User(String name, int age){
this.name = name;
this.age = age;
}
public void print(){
System.out.println("名字:"+ name + " 年龄:" + age);
}
}
再写个Bean配置类
@Configuration
class BeanConfiguration {
@Bean
public User user(){
return new User("路人张",18);
}
}
通过AnnotationConfigApplicationContext
实例化Spring容器,如下
class test{
public static void main(String[] args) {
ApplicationContext application = new AnnotationConfigApplicationContext(BeanConfiguration.class);
User user= application.getBean(User.class);
user.print();
}
}
输出:
名字:路人张 年龄:18
也可以通过注解@Autowired注入
class School{
@Autowired
private User user;
// .......
}
类比XML文件配置元数据,@Configuration相当于XML文件中的<beans></beans>,@Beanx相当于XML文件中的<bean/>,就好理解多了。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版