Spring入门教程笔记1 - bean的认识及使用

Spring入门教程笔记1 - bean的认识及使用

简单介绍

Spring 是最受欢迎的企业级 Java EE开发框架,开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。

建议学前了解 工厂设计模式 效果更佳

使用工具

Maven、JDK1.8、IDEA 2020.3.2

容器

Spring有两大高级容器使用

  • BeanFactory
  • ApplicationContext

大多数开发者都以ApplicationContext来当工厂容器,ApplicationContextBeanFactory的子类,相比父类BeanFactory,更受大众喜爱。

使用方法

ApplicationContext常用的三个接口实现类

  • FileSystemXmlApplicationContext
  • ClassPathXmlApplicationContext
  • WebXmlApplicationContext

FileSystemXmlApplicationContext

需要提供完整的xml文件路径

ApplicationContext context = new FileSystemXmlApplicationContext("textContentBean.xml");

ClassPathXmlApplicationContext

只需要提供相对路径的xml文件 一般在resource下

ApplicationContext content = new ClassPathXmlApplicationContext("textContentBean.xml");

WebXmlApplicationContext

一般在Servlet的生产环境下使用

		ServletContext servletContext = request.getSession().getServletContext();
        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );     

bean介绍

Spring是通过读取Xml数据找到bean来进行注入以及其他相关操作,不了解没关系,我们在resource下创建一个userBean的xml文件

代码示例

默认情况下的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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

创建bean

    <bean class="cn.marinda.resturants.User" name="userBean"></bean>

使用bean标签来进行创建,class指向当前包下的类,name值为bean值

创建User类

public class User {
    private String User;
    private int age;
    private String Address;

    public int getAge() {
        return age;
    }

    public String getAddress() {
        return Address;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setUser(String user) {
        User = user;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public String getUser() {
        return User;
    }

    @Override
    public String toString() {
        return "User{" +
                "User='" + User + '\'' +
                ", age=" + age +
                ", Address='" + Address + '\'' +
                '}';
    }

Main方法

我们使用ClassPathXmlApplicationContext实现类来进行操作

    public static void main(String[] args) {
        //创建ClassPathXmlApplicationContext
        ApplicationContext context = new ClassPathXmlApplicationContext("userBean.xml");
        //通过容器找xml中的bean的name
        User user = (User) context.getBean("userBean");
        //打印
        System.out.println(user.toString());
    }

控制台结果

User{User='null', age=0, Address='null'}

小提示

这样我们已经通过Spring的ApplicationContext的容器找到了userBean,接下来到我们bean的数据注入

bean注入方式

在User里我们已经封装好数据的get set方法,接下来我们开始bean的注入

给bean注入数据

  • property
  • constructor-arg

字段注入

property 字段注入标签 参数有namevalueref

构造方法注入

constructor-arg 构造方法注入标签 参数有namevalueref

我们将使用property 标签来进行字段注入

<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="cn.marinda.resturants.User" name="userBean">
        <property name="user" value="小明" ></property>
        <property name="age" value="16" ></property>
        <property name="address" value="狗熊岭" ></property>
    </bean>
</beans>

控制台结果

User{User='小明', age=16, Address='狗熊岭'}

结束语

  • 我们的认识就到这里,有问题欢迎评论指出
  • 祝大家学习愉快
上一篇:Spring面试基础


下一篇:applicationContext.xml和dispatcher-servlet.xml的区别