【Spring】注入方法
添加maven依赖:
1 <!-- spring基础包spring-core --> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-core</artifactId> 5 <version>5.2.8.RELEASE</version> 6 </dependency> 7 <!-- spring基础包spring-beans --> 8 <dependency> 9 <groupId>org.springframework</groupId> 10 <artifactId>spring-beans</artifactId> 11 <version>5.2.8.RELEASE</version> 12 </dependency> 13 <!-- spring基础包spring-context --> 14 <dependency> 15 <groupId>org.springframework</groupId> 16 <artifactId>spring-context</artifactId> 17 <version>5.2.8.RELEASE</version> 18 </dependency> 19 <!-- spring基础包spring-expression --> 20 <dependency> 21 <groupId>org.springframework</groupId> 22 <artifactId>spring-expression</artifactId> 23 <version>5.2.8.RELEASE</version> 24 </dependency> 25 <!-- spring依赖包 --> 26 <dependency> 27 <groupId>commons-logging</groupId> 28 <artifactId>commons-logging</artifactId> 29 <version>1.2</version> 30 </dependency>
一、setter注入和构造方法注入
在resources文件夹下创建配置文件applicationContext.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 <!-- 将类配置到容器当中,让容器创建实例 --> 7 <!-- setter注入 --> 8 <bean id="hello" class="com.xiaobiti.HelloSpring"> 9 <!-- 给属性赋值 --> 10 <property name="name" value="南宁第一深情"/> 11 </bean> 12 <!-- 构造方法注入 --> 13 <bean id="User" class="com.xiaobiti.User"> 14 <constructor-arg name="id" value="1"/> 15 <constructor-arg name="username" value="jojo"/> 16 <constructor-arg name="password" value="1234"/> 17 </bean> 18 </beans>
HelloSpring.java:
1 package com.xiaobiti; 2 3 public class HelloSpring { 4 private String name; 5 6 public void setName(String name) { 7 this.name = name; 8 } 9 10 public void show(){ 11 System.out.println(name+",我在南宁很想你"); 12 } 13 14 }
测试类代码:
1 package com.xiaobiti; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 public class TestHelloSpring { 7 public static void main(String[] args) { 8 //加载核心配置文件 9 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 10 HelloSpring helloSpring = (HelloSpring) applicationContext.getBean("hello"); 11 helloSpring.show(); 12 } 13 }
运行结果:
上面已经展示的是setter方法注入,构造方法注入如下
User.java:
1 package com.xiaobiti; 2 3 public class User { 4 private int id; 5 private String username; 6 private String password; 7 8 public User(int id, String username, String password) { 9 this.id = id; 10 this.username = username; 11 this.password = password; 12 } 13 14 @Override 15 public String toString() { 16 return "User{" + 17 "id=" + id + 18 ", username='" + username + '\'' + 19 ", password='" + password + '\'' + 20 '}'; 21 } 22 }
测试类代码:
1 public static void main(String[] args) { 2 //加载核心配置文件 3 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 4 User u = (User) applicationContext.getBean("User"); 5 System.out.println(u.toString()); 6 }
运行结果:
二、依赖注入
创建一下文件结构:

包名.dao.UserDao.Java:
1 package com.xiaobiti.dao; 2 3 public interface UserDao { 4 public boolean login(String username,String password); 5 }
包名.dao.impl.UserDaoImpl.java:
1 package com.xiaobiti.dao.impl; 2 3 import com.xiaobiti.dao.UserDao; 4 5 public class UserDaoImpl implements UserDao { 6 @Override 7 public boolean login(String username, String password) { 8 if (username.equals("admin") && password.equals("1234")){ 9 return true; 10 } 11 return false; 12 } 13 }
包名.service.UserService.java:
1 package com.xiaobiti.service; 2 3 public interface UserService { 4 public boolean login(String username,String password); 5 }
包名.service.impl.UserServiceImpl.java:
1 package com.xiaobiti.service.impl; 2 3 import com.xiaobiti.dao.UserDao; 4 import com.xiaobiti.service.UserService; 5 6 public class UserServiceImpl implements UserService { 7 private UserDao userDao; 8 //setter方式注入 9 public void setUserDao(UserDao userDao) { 10 this.userDao = userDao; 11 } 12 13 @Override 14 public boolean login(String username, String password) { 15 return userDao.login(username,password); 16 } 17 }
applicationContext.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 <!-- 将类配置到容器当中,让容器创建实例 --> 7 <!-- 注入dao --> 8 <bean id="userDao" class="com.xiaobiti.dao.impl.UserDaoImpl"/> 9 <!-- 注入service --> 10 <bean id="userService" class="com.xiaobiti.service.impl.UserServiceImpl"> 11 <property name="userDao" ref="userDao"/><!-- ref填入已经注入的userDao,对应上面bean中id=“userDao” ,setter注入方法--> 12 </bean> 13 </beans>
测试类代码:
1 public static void main(String[] args) { 2 //加载核心配置文件 3 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 4 UserService userService = (UserService) applicationContext.getBean("userService"); 5 boolean flag = userService.login("admin","1234"); 6 if (flag){ 7 System.out.println("登录成功"); 8 }else{ 9 System.out.println("登录失败"); 10 } 11 }

浙公网安备 33010602011771号