1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
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完整版