zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java web开发(第一个spring程序)

2023-09-27 14:27:10 时间

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        提到java web编程,好像spring就躲不开了。一般认为,spring有两个特征,分别是ioc、aop。两个英文单词的中文解释都比较拗口,一个称之为控制反转,一个是面向切面。对于刚刚学习spring的同学,其实没有必要纠结里面的技术细节,可以把学习重点放在具体的应用上面。比如,可以用spring做一到两个demo程序,验证一下spring是怎么运转的即可。

        使用IDEA学习spring也比较方便。可以借助于IDEA首先了解下spring是怎么开发的。

1、创建工程,分别选中“Spring”和“Web Application”

2、工程名设置为Hello,这样工程就创建好了,IDEA也默认添加好了spring lib库

 

3、创建spring配置文件,命名为applicationContext.xml

        执行过程中,可能遇到这样的告警提示,

        不用担心,直接点击“Configure application context”,选择“create new application context”即可,

         直接点击ok即可。

5、补充完整applicationContext.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">

    <bean id="teacher" class="Teacher">
        <property name="teacherNo" value="666666"></property>
        <property name="teacherName" value="Tom"></property>
    </bean>
</beans>

 

6、添加Teacher.java源文件,放在src目录下,

public class Teacher {
    private int teacherNo;
    private String teacherName;

    public int getTeacherNo() {
        return teacherNo;
    }

    public void setTeacherNo(int teacherNo) {
        this.teacherNo = teacherNo;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "teacherNo=" + teacherNo +
                ", teacherName='" + teacherName + '\'' +
                '}';
    }
}

         注意这个Teacher类里面的变量和applicationContext.xml里面提到的内容,其实是一致的。两者都有teacherNo和teacherName,而且在applicationContext.xml里面,还添加了默认值666666和Tom,这个需要注意一下。

7、添加测试文件test.java

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {
    public static void main(String args[]) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Teacher teacher = (Teacher) context.getBean("teacher");
        System.out.println(teacher.toString());
    }
}

         这个test.java值得好好看看。开始两个import语句主要是引用,从内容上看,引用的都是springframework的部分。正式的内容从test.main函数开始。首先,读取applicationContext.xml文件。其次,从文件中找到“teacher”生成一个teacher实例。最后,调用toString重载函数。

        这段代码最精彩的地方,其实就在于整个代码中没有一个new操作,仅仅是读取配置文件,就实现了类实例的创建。这里面有什么好处呢,我倒是想到了一个。比如说,如果之前使用的数据库是mysql,某一天有一个客户说他们习惯了用oracle,oracle比较稳定。那么,这个时候需要做的就是在applicationContext.xml文件中把class换一下就好了,代码不需要做任何的修改。

8、代码编译调试

        直接选中test.java,右击选中“Run test.main()”,

         如果没有什么问题的话,就可以看到这样的打印,

         可以故意制造一个错误,比如去除xml文件中bean的相关内容,那么执行会出现什么错误呢?可以用<!-- -->来注销bean代码观察看看。