spring的简单实例
spring框架的用途简单举例(第一个实例):
可以使用spring的bean实现创建类的对象,而不是由客户端去创建
此处为编写简单的spring实例代码,文件的结构为:
JavaBean实例代码(User.java):
1 package com.gp.service; 2 public class User { 3 private String username; 4 private String password; 5 public String getUsername() { 6 return username; 7 } 8 public void setUsername(String username) { 9 this.username = username; 10 } 11 12 public void show(){ 13 System.out.println("姓名是: "+username+" , 密码是:"+password); 14 } 15 public String getPassword() { 16 return password; 17 } 18 public void setPassword(String password) { 19 this.password = password; 20 } 21 }
spring的配置文件(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 <bean id="user" class="com.gp.service.User"> 7 <property name="username" value="zhangsan"/> 8 <!-- 调用的是setUsername后面的值,即把set后的第一个字母小写即可 --> 9 <property name="password" value="123456"/> 10 </bean> 11 </beans>
Java的测试文件(TestUser.java):
1 package com.gp.test; 2 import org.springframework.context.ApplicationContext; 3 import org.springframework.context.support.ClassPathXmlApplicationContext; 4 import com.gp.service.User; 5 public class TestUser { 6 public static void main(String[] args) { 7 8 //spring容器是在此处进行初始化的,对象的创建是有spring容器创建的,此处加载容器, 9 //通过getBean来获取对象,里面的参数是由xml文件中bean标签的id 10 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); 11 User user=(User) context.getBean("user"); 12 user.show(); 13 } 14 }
执行测试文件的运行结果为:
姓名是: zhangsan , 密码是:123456
有以下几种方式可以实现:
User user=context.getBean("user",User.class);
或者改为
User user=context.getBean(User.class);
可以在BeanFactoty中的获取getBean方法可以得知:
================================================================================================
而如果不用spring框架,直接写,则测试文件如下所示:
1 package com.gp.test; 2 import com.gp.service.User; 3 public class TestUser1 { 4 public static void main(String[] args) { 5 User user=new User(); 6 user.setUsername("zhangsan"); 7 user.setPassword("123456"); 8 user.show(); 9 } 10 }
运行结果同上所示:
通过比较可以得知,通过spring框架,对象的创建交给了spring框架进行,spring容器中保存了bean,并且通过applicationContext.xml文件中bean标签id可以在context中获取对应的实例对象。
对象的创建是通过Java的反射生产的,所以User.java类中必须有一个无参的构造方法,否无运行报错。