Spring之Spring环境搭建

Spring之Spring环境搭建

一、什么是Spring?

  Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
    ◆目的:解决企业应用开发的复杂性
    ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
    ◆范围:任何Java应用
  Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

  1、Spring的核心是一个轻量级(Lightweight)的容器(Container)。
  2、Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。
  3、Spring提供AOP(Aspect-oriented programming)概念的实现方式。
  4、Spring提供对持久层(Persistence)、事物(Transcation)的支持。
  5、Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
  6、Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。

二、Spring之JavaSE环境搭建

 1、基本的Jar 包:

  commons-logging-1.2.jar
  spring-aop-4.3.0.RELEASE.jar
  spring-aspects-4.3.0.RELEASE.jar
  spring-beans-4.3.0.RELEASE.jar
  spring-context-4.3.0.RELEASE.jar
  spring-core-4.3.0.RELEASE.jar
  spring-expression-4.3.0.RELEASE.jar

 2、项目目录结构

3、源代码

①、HelloWorld.java(POJO)

 1 package cn.com.zfc.helloworld;
 2 
 3 public class HelloWorld {
 4 
 5     // 私有属性
 6     private String name;
 7 
 8     public HelloWorld() {
 9         System.out.println("HelloWorld Constructor()...");
10     }
11 
12     public void sayHello() {
13         System.out.println("Hello " + this.name);
14     }
15 
16     public String getName() {
17         System.out.println("HelloWorld getName()...");
18         return name;
19     }
20 
21     public void setName(String name) {
22         System.out.println("HelloWorld setName()...");
23         this.name = name;
24     }
25 
26 }

②、bean-helloworld.xml(Spring配置文件)

 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 http://www.springframework.org/schema/beans/spring-beans.xsd">
 5 
 6     <!-- 配置bean:id,bean的唯一标识;class,bean实现的实现类 -->
 7     <bean id="helloWorld" class="cn.com.zfc.helloworld.HelloWorld">
 8         <!-- 使用属性注入 -->
 9         <property name="name" value="Spring"></property>
10     </bean>
11 </beans>

③、TestHelloWorld.java(测试类)

 1 package cn.com.zfc.test;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 import cn.com.zfc.helloworld.HelloWorld;
 7 
 8 public class TestHelloWorld {
 9     public static void main(String[] args) {
10         /* 1、获取Ioc容器 */
11         ApplicationContext ctx = new ClassPathXmlApplicationContext("bean-helloworld.xml");
12 
13         /* 2、获取bean */
14         
15         //根据id获取bean
16         HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
17 
18         /* 3、调用bean的方法 */
19         helloWorld.sayHello();
20     }
21 }

④、运行效果

 二、Spring之JavaEE环境搭建

1、基本Jar包

  commons-logging-1.2.jar
  spring-aop-4.3.0.RELEASE.jar
  spring-beans-4.3.0.RELEASE.jar
  spring-context-4.3.0.RELEASE.jar
  spring-core-4.3.0.RELEASE.jar
  spring-expression-4.3.0.RELEASE.jar
  spring-web-4.3.0.RELEASE.jar

2、目录结构

3、源代码

①HelloWorld.java(POJO)

 1 package cn.com.zfc.bean;
 2 
 3 public class HelloWord {
 4     private String name;
 5 
 6     public HelloWord() {
 7         super();
 8     }
 9 
10     public String getName() {
11         return name;
12     }
13 
14     public void setName(String name) {
15         this.name = name;
16     }
17 
18     @Override
19     public String toString() {
20         return "HelloWord [name=" + name + "]";
21     }
22 
23 }

②web.xml(注册Spring的配置文件)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5     id="WebApp_ID" version="3.1">
 6     <display-name>Spring_02</display-name>
 7     <welcome-file-list>
 8         <welcome-file>index.jsp</welcome-file>
 9     </welcome-file-list>
10     <!-- 注册 Spring 配置文件 -->
11     <!-- needed for ContextLoaderListener -->
12     <context-param>
13         <param-name>contextConfigLocation</param-name>
14         <!-- Spring 配置文件的位置 -->
15         <param-value>classpath:applicationContext.xml</param-value>
16     </context-param>
17     <!-- 配置监听器,加载 Spring 配置文件 -->
18     <listener>
19         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
20     </listener>
21 </web-app>

③applicationContext.xml(Spring的配置文件)

 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" xmlns:context="http://www.springframework.org/schema/context"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 5         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 6     <!-- 配置 bean -->
 7     <bean id="" class="cn.com.zfc.bean.HelloWord">
 8         <!-- 使用属性注入为 HelloWorld 的属性赋值 -->
 9         <property name="name" value="zfc"></property>
10     </bean>
11 
12 </beans>

④index.jsp(测试页面)

 1 <%@page import="cn.com.zfc.bean.HelloWord"%>
 2 <%@page import="org.springframework.context.ApplicationContext"%>
 3 <%@page
 4     import="org.springframework.web.context.support.WebApplicationContextUtils"%>
 5 <%@ page language="java" contentType="text/html; charset=UTF-8"
 6     pageEncoding="UTF-8"%>
 7 <!DOCTYPE html>
 8 <html>
 9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
11 <title>Spring</title>
12 </head>
13 <body>
14     <h1>Spring 在 web 项目中的应用</h1>
15     <%
16         /* 在 jsp 页面中获取 Spring 的 Ioc 容器 */
17         ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(application);
18         /* 获取 bean,使用类型 */
19         HelloWord helloWord = ctx.getBean(HelloWord.class);
20     %>
21     <h2>
22         在 jsp 中获取 bean:<%=helloWord%></h2>
23 </body>
24 </html>

4、运行效果

原文地址:https://www.cnblogs.com/zfc-java/p/7018296.html