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类中必须有一个无参的构造方法,否无运行报错。