SSH框架spring

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 

Spring核心有两个方面IOC(依赖注入)和AOP(面向对象切面编程) 
Spring贯穿在整个项目之中,每当我们需要new 一个对象的时候,其实很耗资源的,
通过spring可以被动的让我们获取想要的对象而不用每次都去new

整体来说,是个容器,存放着各种bean,在容器创建时,创建bean,并管理bean。ssh,分别指的是struts、spring、hibernate。整合起来,是让spring来管理struts和hibernate,并且,能让hibernate能用上spring的事物。

目的:解决企业应用开发的复杂性

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

范围:任何Java应用

简单来说,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

 Person ,  Card

//Card


package com.zking.pojo;

import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.jws.Oneway;

/**
 * @ClassName: Card
 * @Description: (描述这个类的作用)
 * @author LJY
 * @date 2018年9月17日 下午2:59:22
 *
 */
public class Card {

	private String cid;
	private String cname;

	private Set<String> ls;

	private List<String> lp;

	private Map<Object, Object> lm;

	private Person person;

	public Card() {
		super();
	}

	public Map<Object, Object> getLm() {
		return lm;
	}

	public void setLm(Map<Object, Object> lm) {
		this.lm = lm;
	}

	public Set<String> getLs() {
		return ls;
	}

	public void setLs(Set<String> ls) {
		this.ls = ls;
	}

	public List<String> getLp() {
		return lp;
	}

	public void setLp(List<String> lp) {
		this.lp = lp;
	}

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}

	public Card(String cid, String cname) {
		super();
		this.cid = cid;
		this.cname = cname;
	}

	public String getCid() {
		return cid;
	}

	public void setCid(String cid) {
		this.cid = cid;
	}

	public String getCname() {
		return cname;
	}

	public void setCname(String cname) {
		this.cname = cname;
	}

	@Override
	public String toString() {
		return "Card [cid=" + cid + ", cname=" + cname + "]";
	}

}




//Person




package com.zking.pojo;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class Person {
	private String pid;
	private String pname;
	private String pwd;

	private Map<Object, Object> lm;

	private Set<String> sc;
	private Set<Card> lsc;

	private List<String> lp;

	
	private Card card;

	
	
	public Set<Card> getLsc() {
		return lsc;
	}

	public void setLsc(Set<Card> lsc) {
		this.lsc = lsc;
	}

	public Map<Object, Object> getLm() {
		return lm;
	}

	public void setLm(Map<Object, Object> lm) {
		this.lm = lm;
	}

	public Set<String> getSc() {
		return sc;
	}

	public void setSc(Set<String> sc) {
		this.sc = sc;
	}

	public List<String> getLp() {
		return lp;
	}

	public void setLp(List<String> lp) {
		this.lp = lp;
	}

	public Card getCard() {
		return card;
	}

	public void setCard(Card card) {
		this.card = card;
	}

	public Person() {
		super();
	}

	public Person(String pid, String pname, String pwd) {
		super();
		this.pid = pid;
		this.pname = pname;
		this.pwd = pwd;
	}

	public String getPid() {
		return pid;
	}

	public void setPid(String pid) {
		this.pid = pid;
	}

	public String getPname() {
		return pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	@Override
	public String toString() {
		return "Person [pid=" + pid + ", pname=" + pname + ", pwd=" + pwd + "]";
	}
	
	
	//init-method
	public void infName() {
		System.out.println("初始化的值");
	}

}

 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"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">

	<!-- 产生一个spring bean 因为我的所有的产生的bean的对象全部都是写在xml配置文件中的 那么就意味着我需要加载这一个配置文件applicationContext.xml 
		加载xml配置文件信息,那么就意味着解析xml,解析xml就意味使用dom4j class属性值得时候,根据class的值 进行反射 Class.fromName(class) 
		ioc无非就是使用的dome4j+反射 hibernate(缓存机制) struts2(拦截器->解析struts.xml文件并且反射) -->

	<!-- id(不可以随便定义 idx相当于 Person person=new Person) class name(name可以随便定义) -->
	<!-- Person -->
	<!-- scope="prototype" 单列,本身默认的就是单列 -->
	<bean id="person" class="com.zking.pojo.Person" name="$!.m"
		init-method="infName">

		<property name="pid" value="12121"></property>
		<property name="pname" value="zs"></property>
		<property name="pwd" value="pwd"></property>

		<!-- List集合 -->
		<property name="lp">
			<list>
				<value>1</value>
				<value>2</value>
				<value>3</value>
			</list>
		</property>

		<!-- Set集合 -->
		<property name="sc">
			<set>
				<value>1</value>
				<value>2</value>
				<value>4</value>
			</set>
		</property>

		<!-- Map集合 --> 
		<property name="lm">
			<map>
				<entry key="pid" value="sdsd"></entry>
				<entry key="pname" value="sdsdd"></entry>
			</map>
		</property>

		<property name="lsc">
			<set>
				<ref bean="card" />
			</set>
		</property>
		 
	</bean>
  
	<!-- Card -->
	<bean id="card" name="card" class="com.zking.pojo.Card">
   
		<!-- property -->
		<property name="cid" value="2323"></property>
		<property name="cname" value="ls"></property>

		<!-- constructor-arg -->
		<constructor-arg index="0" value="121212121"></constructor-arg>
		<constructor-arg index="1" value="密码"></constructor-arg>

	</bean>




</beans>

 TempTest.java

package com.zking.test;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

import com.zking.pojo.Card;
import com.zking.pojo.Person;

public class TempTest {
	@Test
	public void Temp() {
		// 懒加载(延时加载)
		// BeanFactory beanFactory = new XmlBeanFactory(new
		// ClassPathResource("applicationContext.xml"));
		// Person person = (Person) beanFactory.getBean("person");
		// Card card = (Card) beanFactory.getBean("card");
		// System.out.println(person);
		// System.out.println(card);

		// 及时加载
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person = (Person) applicationContext.getBean("person");
		System.out.println(person);

		// List集合
		System.out.println(person.getLp());
		// Map集合
		System.out.println(person.getLm());
		// Set集合
		System.out.println(person.getSc());
		// 对象
		System.out.println(person.getCard());

		// Card card = (Card) applicationContext.getBean("card");
		// System.out.println(card);

		for (Card c : person.getLsc()) {
			System.out.println(c.getCname() + "sdsd" + c.getCid());
		}

	}
}

猜你喜欢

转载自blog.csdn.net/qq_42247220/article/details/82731932
今日推荐