1, 使用 xml 文件配置:
创建 applicationContext.xml, 在该文件中创建需要的 bean,
<bean id="hello" class="springdemo.HelloSpring"></bean>
此语句即可创建该类对象, 即控制反转, 使用容器创建对象.
属性注入: 分为 set 方法与构造方法注入, 构造方法可使用下标索引或者数据类型进行对应注入, 或者都使用. set 注入则使用 name="属性名" 进行注入
- <bean id="hello" class="springdemo.HelloSpring">
- <constructor-arg index="0" value="kobe"></constructor-arg>
- <constructor-arg index="1" value="44"></constructor-arg>
- <property name="name" value="多帅哦"></property>
- <property name="num" value="22"></property>
- </bean>
静态工厂注入: 把静态方法放入 bean 中.
<bean id="carFactory" class="springdemo.CarFactory" factory-method="getCar"></bean>
2, 使用注解:
使用包扫描工具
<context:component-scan base-package="springAutoDemo"></context:component-scan>
使用 Component,Service,Repository,Controller 注解把一个类标注为一个 bean, 使用 Autowired 注解实现 bean 的依赖注入
- package springAutoDemo;
- import org.springframework.stereotype.Component;
- @Component
- public class Person {
- private String name;
- private int age;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "User [name=" + name + ", age=" + age + "]";
- }
- }
- package springAutoDemo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- @Service
- public class Student {
- private Person person;
- @Autowired
- public void setPerson(Person person) {
- this.person = person;
- }
- public void getPerson() {
- System.out.println(person.toString());
- }
- }
测试类
- package springAutoDemo;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class AutoTest {
- public static void main(String[] args) {
- ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
- Student student = context.getBean("student", Student.class);
- student.getPerson();
- }
- }
来源: http://www.bubuko.com/infodetail-3086657.html