Spring Bean - KelovpString

/ 0评 / 0

    大环境就是我又不会。所以开始了:

    因为框架使用Spring(之前有提到过是MAVEN+SpringMVC),然后这里就是从下载开始一路向下吧。Spring框架作为一个开源的Java平台,由于简单而快速为Java应用程序提供了全面的基础设施,这个最初由Rod Johnson编写的框架到现在已经到5.0以上的版本,最近的一次更新也是在NOV.12。Spring的相关教程是在是太多了(我还是花了二十大洋在今年五月就买了本书嘤嘤嘤),然后相关的优点在这里:

Spring 可以使开发人员使用 POJOs 开发企业级的应用程序。只使用 POJOs 的好处是你不需要一个 EJB容器产品,比如一个应用程序服务器,但是你可以选择使用一个健壮的servlet 容器,比如 Tomcat 或者一些商业产品。
Spring 在一个单元模式中是有组织的。即使包和类的数量非常大,你必须并且只需要但是你需要的,而忽略剩余的那部分。
Spring 不会让你白费力气坐重复工作,它真正的利用了一些现有的技术,像几个 ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器,其他视图技术。
测试一个用 Spring 编写的应用程序很容易,因为 environment-dependent 代码被放进了这个框架中。此外,通过使用 JavaBean-style POJOs,它在使用依赖注入注入测试数据变得更容易。
Spring 的 web 框架是一个设计良好的 web MVC 框架,它为 web 框架,比如 Structs 或者其他工程上的或者很少受欢迎的 web 框架,提供了一个很好的供替代的选择。
为将特定技术的异常(例如,由 JDBC、Hibernate,或者 JDO 抛出的异常)翻译成一致的, Spring 提供了一个方便的 API,而这些都是未经检验的异常。
轻量级的 IOC 容器往往是轻量级的,例如,特别是当与 EJB 容器相比的时候。这有利于在内存和 CPU 资源有限的计算机上开发和部署应用程序。
Spring 提供了一个一致的事务管理界面,该界面可以缩小成一个本地事务(例如,使用一个单一的数据库)和扩展成一个全局事务(例如,使用 JTA)

    这里需要注意最核心的:依赖注入 和 面向切面编程 。他就是这么玩的-

下载:

    http://repo.spring.io/release/org/springframework/spring

    这里版本练习的话随意选择,只要有最重要的那几个容器就行(核心容器、数据访问/集成、Web),下载好找个目录解压了。

初次尝试:

    创建一个JavaProject,然后在lib中导入Spring的相关jar包,然后来个测试类-再来个配置xml:

package com.hbc.helloworld;

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

import lombok.Data;

@Data
public class HelloWorld {
	private String messAge;
	//Test For Collection
	List<Object> list;
	Set<Object> set;
	Map<Object, Object> map;
	Properties properties;
}
package com.hbc.helloworld;

import org.springframework.context.support.ClassPathXmlApplicationContext;

@SuppressWarnings("all")
public class MainApp {
	public static void main(String[] args) {
		HelloWorld obj  = (HelloWorld) new ClassPathXmlApplicationContext("beans.xml").getBean("helloWorld");
		System.out.println(obj.getMessAge());
		System.out.println(obj.getList());
		System.out.println(obj.getSet());
		System.out.println(obj.getMap());
		System.out.println(obj.getProperties());
	}
}
<?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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<context:annotation-config />
	<!-- Definition for javaCollection -->
	<bean id="helloWorld" class="com.hbc.helloworld.HelloWorld">
		<!-- results in a setAddressList(java.util.List) call -->
		<property name="list">
			<list>
				<value>INDIA</value>
				<value>Pakistan</value>
				<value>USA</value>
				<value>USA</value>
			</list>
		</property>
		<!-- results in a setAddressSet(java.util.Set) call -->
		<property name="set">
			<set>
				<value>INDIA</value>
				<value>Pakistan</value>
				<value>USA</value>
				<value>USA</value>
			</set>
		</property>
		<!-- results in a setAddressMap(java.util.Map) call -->
		<property name="map">
			<map>
				<entry key="1" value="INDIA" />
				<entry key="2" value="Pakistan" />
				<entry key="3" value="USA" />
				<entry key="4" value="USA" />
			</map>
		</property>
		<!-- results in a setAddressProp(java.util.Properties) call -->
		<property name="properties">
			<props>
				<prop key="one">INDIA</prop>
				<prop key="two">Pakistan</prop>
				<prop key="three">USA</prop>
				<prop key="four">USA</prop>
			</props>
		</property>
	</bean>

    既然测试过了第一个例子之后,然后就该明白这个到底怎么回事就可以了-:

首先得对几个容器产生概念(BeanFactory 容器 ApplicationContext 容器),接下来就是一堆测试类了。

    从Bean的定义到Spring配置元数据,到Bean的作用域(Singleton作用域 prototype作用域),Bean的生命周期(初始化回调,销毁回调 的途径和方法),Bean的定义继承,依赖注入,注入内部Beans,注入集合(就像上面),Bean的自动装配和自动装配模式,以及自动装配的局限性,还有基于注解的配置(特指@Requried 和 @Autowried注释。)除此之外还有@Qualifier @PostConstruct @PreDestory @Resource @Configuration 和 @Bean当然最关键的了。本来想把代码都附上,但是好像太多而且意义不明,给自己留几点Point等到以后有问题去查询吧。(Bean作为核心还是很重要的) -不刷长度。


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注