javaWeb---Spring框架入门


1.JavaSpring框架是service层架构, Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack( 一站式 ) 轻量级开源框架。

2.Spring的优点:

2.1方便解耦,简化开发  (高内聚低耦合)

2.2Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理

 spring工厂是用于生成bean

2.3 AOP编程的支持

Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

2.4  声明式事务的支持

  只需要通过配置就可以完成对事务的管理,而无需手动编程

2.5方便程序的测试

Spring对Junit4支持,可以通过注解方便的测试Spring程序

2.6方便集成各种优秀框架

  Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持

2.7降低JavaEE API的使用难度


3 入门案例

3.1导入jar包


3.2在src目录下建立目标和xml文件

    

3.3 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">
	<!-- 配置service 
		<bean> 配置需要创建的对象
			id :用于之后从spring容器获得实例时使用的 setBookdao >Bookdao >bookdao
			
			class :需要创建实例的全限定类名
	-->
	<bean id="bookServiceId" class="com.heima.spring_day01.bookServiceImpl" scope="prototype">
	    <property name="bookdao" ref="bookDaoId"></property>
	</bean>
		
	<bean id="bookDaoId" class="com.heima.spring_day01.bookDaoImpl">
	</bean>
</beans>

建立两个接口和两个实现类,在bookService里调用bookDao类中的add方法,所以xml里需要两个Bean,一个sericebean 一个daobean,以前用的时候都是通过new一个对象来实现,现在利用spring的话,把new的操作交给spring来执行,只需要调用getbean方法就可以获取对应的bean对象。

<bean id="bookServiceId" class="com.heima.spring_day01.bookServiceImpl" scope="prototype"> 这个id相当于一个引用键值,class是用来产生一个对象的。
<property>是class对应的属性。
ref--引用的bean.





测试类代码:

	@Test
	public void fun()
	{
		String xmlPath = "/com/heima/spring_day01/bean.xml";
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
		
		bookService bookService = (com.heima.spring_day01.bookService) applicationContext.getBean("bookServiceId");
		bookService bookService1 = (com.heima.spring_day01.bookService) applicationContext.getBean("bookServiceId");
	    System.out.println(bookService==bookService1);
		bookService.save();
	}

String xmlPath = "/com/heima/spring_day01/bean.xml"; 这个是bean.xml的路径
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);通过读取配置文件来建立一个beanFactory。
bookService bookService = (com.heima.spring_day01.bookService) applicationContext.getBean("bookServiceId"); 通过xml文件的id键值来获得对应的beanFactory中的对象。

测试:

   

5.spring的属性注入

   1.构造函数

          通过bean.xml文件就能给对应类的构造函数进行赋值操作

         使用 <constructor-arg>来进行配置

   2.setter方法

           <property  name = ""  value=""/>属性来进行赋值

   3.集合注入

          使用     <property name="dStrings">  //dStrings是数据类型 可以是 set  map  class   list 等
                         <array> 对应数据类型:<map><list>等

                        </array>
                     </property>

   4.集合注入的xml配置:

<map>要使用<entry key="rose" value="肉丝"/>来设置key---value

<?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="collectDataId" class="com.sping.bean_set.Collect">
     <property name="dStrings">
     	<array>
     		<value>ha1</value>
     		<value>ha2</value>
     		<value>ha3</value>
     		<value>ha4</value>
     	</array>
     </property>
     <property name="setStrings">
     	<set>
     		<value>小伙子1</value>
     		<value>小伙子2</value>
     		<value>小伙子3</value>
     		<value>小伙子4</value>
     	</set>
     </property>
     <property name="listStrings">
     	<list>
     		<value>hhhh1</value>
     		<value>hhhh2</value>
     		<value>hhhh3</value>
     		<value>hhhh4</value>
     		<value>hhhh5</value>
     		<value>hhhh6</value>
     	</list>
     </property>
	 <property name="mapStrings">
		<map>
			<entry key="rose" value="肉丝"/>
			<entry key="jack" value="肉丝"/>
		</map>	
	 </property>

 </bean>
</beans>

    集合注入的类:

 

package com.sping.bean_set;

import java.util.Arrays;
import java.util.List;
import java.util.Set;

import java.util.Map;
import java.util.Properties;

public class Collect {
    
	private String[] dStrings;
	private Set<String> setStrings;
	private List<String> listStrings;
	private Map<String, String>  mapStrings;
	private Properties propsData;
	
	public String[] getdStrings() {
		return dStrings;
	}
	public void setdStrings(String[] dStrings) {
		this.dStrings = dStrings;
	}
	public Set<String> getSetStrings() {
		return setStrings;
	}
	public void setSetStrings(Set<String> setStrings) {
		this.setStrings = setStrings;
	}
	public List<String> getListStrings() {
		return listStrings;
	}
	public void setListStrings(List<String> listStrings) {
		this.listStrings = listStrings;
	}
	public Map<String, String> getMapStrings() {
		return mapStrings;
	}
	public void setMapStrings(Map<String, String> mapStrings) {
		this.mapStrings = mapStrings;
	}
	public Properties getPropsData() {
		return propsData;
	}
	public void setPropsData(Properties propsData) {
		this.propsData = propsData;
	}
	@Override
	public String toString() {
		return "Collect [\ndStrings=" + Arrays.toString(dStrings) + ", \nsetStrings=" + setStrings + ", \nlistStrings="
				+ listStrings + ", \nmapStrings=" + mapStrings + ", \npropsData=" + propsData + "]";
	}
	
	
	
}

测试类:


public class Testfun {

	@Test
	public void  fun() {
		
		String xml = "/com/sping/bean_set/bean.xml";
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xml);
		Collect collect = (Collect) applicationContext.getBean("collectDataId");
		System.out.println(collect.toString());
	
	}
}


测试结果:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值