Java培训笔记 10-Spring介绍

Spring简介

  • Spring是一个轻量级框架,用于代替EGB。主要目的是使Java EE和已经存在的其他技术能被更方便的使用,通过配置管理机制(xml文件)来识别业务对象。
  • Spring框架是一个基于Java的开源开发平台,目标在于通过POJO-based基于简单java对象来进行一个良好的编程实践,提供一个简单方法来配置和解决依赖关系,通过控制反转IoC来实现。
    目的:
  • 减少关联性很强的编码/研究工作:减轻许多关于处理依赖关系的请求,把依赖关系分离到xml文件而不是业务逻辑代码中,可以更好地管理依赖关系。
  • 灵活性:提供了和其他几个框架的继承接口,开发人员可以自由选择适合他们的模型

Spring框架组成部分

7个件/模块来组成,每个模块都有明确的功能定义,可以独立使用。Spring为每个模块提供集成接口来和其他框架协同工作。
在这里插入图片描述

  • AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。它是面向对象编程(OOP)的一种补充,目前已成为一种比较成熟的编程方式。
  • Spring Core:所有Spring框架都依赖于core组件,也可以作为控制反转IoC,支持创建、管理对象和其他共通应用服务。主要package包括:Core package:BeanFactory(为依赖注入提供支持)、Context package:Application Context(提供应用框架服务)
  • MVC框架是一个对于建立web应用的功能全面的MVC实现。

配置Beans

把所有beans聚集在一起在Spring容器中被叫做wiring,wiring可以通过xml来实现。支持wiring的多种BeanFactories和ApplicationContext对象有:

Set注入

hello.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="hello" class="com.spring.HelloImpl" singleton ="false">
		<property name="greeting">
			<value>Good morning!...</value>
		</property>
	</bean>
	<bean id="s" class="com.spring.SecondBean" />
	<bean id="t" class="com.spring.ThirdBean" />
	<bean id="f" class="com.spring.FirstBean">
		<property name="s">
			<ref bean="s" />
		</property>
		<property name="t">
			<ref bean="t" />
		</property>
		<property name="list">
			<list>
				<value>aaa</value>
				<value>bbb</value>
				<value>bbb</value>
			</list>
		</property>
	</bean>
</beans>

Hello.java

package com.spring;

public interface Hello {
	public String sayHello(String s);

}

HelloImpl.java

package com.spring;

public class HelloImpl implements Hello {
	private String greeting;

	@Override
	public String sayHello(String s) {
		// TODO Auto-generated method stub
		return greeting+s;
	}
	// 重点!设置属性的时候会调用这个set方法
	public void setGreeting(String a) {
		greeting = a;
	}
	
	public HelloImpl() {
		super();
		// TODO Auto-generated constructor stub
		System.out.println("Creating!");
	}

};

HelloClient.java

package com.spring;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;


public class HelloClient {
	public static void main(String[] args) {
		Resource res = new ClassPathResource("hello.xml");
		BeanFactory fact = new XmlBeanFactory(res);
		
		// 面向接口编程,h代表具体实现类的方法
		Hello h =(Hello)fact.getBean("hello");
		String s = h.sayHello("User");
		System.out.println(s);
		
		Hello h1 =(Hello) fact.getBean("hello");
		String s1 = h1.sayHello("User1");
		System.out.println(s1);
		
		FirstBean num = (FirstBean) fact.getBean("f");
		System.out.println(num.sayHello("Go!"));
	}

}

Constructor注入

在xml文件中配置

<constructor-arg index = "1"><ref bean = "firstBean"/></constructor-arg>

前端控制器

  • 提供了所有请求都会调用的共通处理
  • 处理关于管理内容提取、安全、视图或导航的请求
  • 代表了一个可以调度视图或调用命令的调度组件。
    简单的说就是接受所有的请求,调度servlet,进行后续的分发。

DispatcherServlet是MVC的前端控制器
@RequestMapping 代表了处理器映射

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值