一、XML
1.1 application.xml配置文件
其中写了依赖关系。如:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userService" class="com.itranswarp.learnjava.service.UserService"><property name="mailService" ref="mailService" /></bean><bean id="mailService" class="com.itranswarp.learnjava.service.MailService" /></beans>
以下代码表明userService依赖mailService
<bean id="userService" class="com.itranswarp.learnjava.service.UserService"><property name="mailService" ref="mailService" /></bean>
1.2 例子
public class Main {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");UserService userService = context.getBean(UserService.class);User user = userService.login("bob@example.com", "password");System.out.println(user.getName());}}
Spring容器就是ApplicationContext
- ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");读取application.xml文件。- UserService userService = context.getBean(UserService.class);根据Bean的类型获取Bean。
二、Annotation
2.1 类
@Componentpublic class UserService {@AutowiredMailService mailService;...}
@Component表示此类是个Bean。@Autowired将把指定类型的Bean注入到指定的字段中。
2.2 main
@Configuration@ComponentScanpublic class AppConfig {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);UserService userService = context.getBean(UserService.class);User user = userService.login("bob@example.com", "password");System.out.println(user.getName());}}
