spring的入门程序

什么是Spring?

 Spring是分层的JavaSE/EE full-stack一站式轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。

  在实际开发中,通常服务器端在采用三层体系架构,分别为表示层(Web)、业务逻辑层(Service)、持久层(Dao), Spring对每一层都提供了技术支持。

一 1.将spring的四个基础包以及commons-logging的JAR包复制到lib目录下

2. 在src目录下,创建一个com.itheima.ioc包,并在包中创建接口UserDao,然后在接口中定义一个say()方法。

package com.itheima.ioc;

public interface UserDao {
      public void say();
}

3.  在com.itheima.ioc包下,创建UserDao接口的实现类UserDaoImpl,该类需要实现接口中的say()方法,并在方法中编写一条输出语句。

package com.itheima.ioc;

public class UserDaoImpl implements UserDao {

	public void say() {
		// TODO Auto-generated method stub
		System.out.println("UserDao say hello world!");

	}

}

4.在src目录下,创建Spring的配置文件applicationContext.xml,并在配置文件中创建一个id为userDao的Bean。

 <?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-4.3.xsd"> 
             <bean id="userDao" class="com.itheima.ioc.UserDaoImpl" />
       </beans>

5. 在com.itheima.ioc包下,创建测试类TestIoC,并在类中编写main()方法。在main()方法中,需要初始化Spring容器,并加载配置文件,然后通过Spring容器获取userDao实例(即Java对象),最后调用实例中的say()方法。

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestloC {
	public static void main(String[]args) {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserDao userDao = (UserDao) applicationContext.getBean("userDao");
		userDao.say();
	}

}

运行结果:

二:依赖注入

 1.在com.itheima.ioc包中,创建接口UserService,在接口中编写一个say()方法。

package com.itheima.ioc;

public interface UserService {
	public void say();
            
}

2.在com.itheima.ioc包中,创建UserService接口的实现类UserServiceImpl,在类中声明userDao属性,并添加属性的setter方法。

package com.itheima.ioc;

public class UserServicelmpl implements UserService {
	private UserDao userDao;
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao; 
	}
	public void say() {
		// TODO Auto-generated method stub
        this.userDao.say();
        System.out.println("userService say hello World!");
	}

}

3,在配置文件applicationContext.xml中,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到userService中。(左边会出现红色的❌,但是不影响程序运行)

<?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-4.3.xsd">
    <bean id="userDao" class="com.itheima.ioc.UserDaoImpl">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <bean id="userService" class="com.itheima.ioc.UserServicelmpl">
       <property name="userDao" ref ="userDao"></property>
        <!-- collaborators and configuration for this bean go here -->
    </bean>
</beans>

4.在com.itheima.ioc包中,创建测试类TestDI,来对程序进行测试。

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDl {

	public static void main(String[] args) {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService userService = (UserService) applicationContext.getBean("userService");
		userService.say();
	}

}

控制台输出结果:

总结:Spring框架的7大优点

 Spring具有简单、可测试和松耦合等特点。Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中。

发布了376 篇原创文章 · 获赞 172 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Eider1998/article/details/104120418
今日推荐