首页 > 学院 > 开发设计 > 正文

spring学习随笔3

2019-11-08 20:14:27
字体:
来源:转载
供稿:网友

本文内容包括

<!--1.Bean的生命周期-->

<!--2.Bean的后置处理器-->

<!--3.静态工厂方法配置bean-->

<!--4.实例工厂方法配置bean-->

<!--5.通过factorybean配置bean-->

<!--6.自动扫描配置bean-->

 

配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://www.sPRingframework.org/schema/beans"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:aop="http://www.springframework.org/schema/aop"	xmlns:util="http://www.springframework.org/schema/util"	xmlns:p="http://www.springframework.org/schema/p"     xsi:schemaLocation="    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">        <!--1.Bean的生命周期-->	<bean id="person" class="com.liu.lesson3.Person" p:name="liu" init-method="init" destroy-method="destroy"></bean>	<!--2.Bean的后置处理器-->	<bean class="com.liu.lesson3.MyProcessor"></bean>	<!--3.静态工厂方法配置bean-->	<bean id="person2" class="com.liu.lesson3.StaticPersonFactory" factory-method="getPerson">		<constructor-arg value="liu"></constructor-arg>	</bean>	<!--4.实例工厂方法配置bean-->	<bean id="factory" class="com.liu.lesson3.InstancePersonFactory"></bean>	<bean id="person3" factory-bean="factory" factory-method="getPerson">		<constructor-arg value="liu2"></constructor-arg>	</bean>	<!--5.通过factorybean配置bean-->	<bean id="person4" class="com.liu.lesson3.MyFactoryBean">	</bean>	<!--6.自动扫描配置bean-->	<context:component-scan base-package="com.liu.lesson3" /> </beans>

InstancePersonFactory

package com.liu.lesson3;import java.util.HashMap;public class InstancePersonFactory {	private HashMap<String,Person> persons = new HashMap<String,Person>();		public InstancePersonFactory(){		persons.put("liu2", new Person("liu2"));		persons.put("zhang2", new Person("zhang2"));	}		public Person getPerson(String name){		return persons.get(name);	}}

MyFactoryBean

package com.liu.lesson3;import org.springframework.beans.factory.FactoryBean;public class MyFactoryBean implements FactoryBean<Person2> {	@Override	public Person2 getObject() throws Exception {		// TODO Auto-generated method stub		return new Person2("test");	}	@Override	public Class<?> getObjectType() {		// TODO Auto-generated method stub		return Person2.class;	}	@Override	public boolean isSingleton() {		// TODO Auto-generated method stub		return true;	}}

MyProcessor

package com.liu.lesson3;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class MyProcessor implements BeanPostProcessor {	@Override	public Object postProcessAfterInitialization(Object arg0, String arg1) throws BeansException {		// TODO Auto-generated method stub		if("person3".equals(arg1)){			System.out.println("postProcessAfterInitialization:"+arg0+","+arg1);		}				return arg0;	}	@Override	public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException {		// TODO Auto-generated method stub		if("person3".equals(arg1)){			System.out.println("postProcessAfterInitialization:"+arg0+","+arg1);		}		return arg0;	}}

 

Person

package com.liu.lesson3;public class Person {	private String name;		public Person() {		System.out.println("Constructor");	}		public Person(String name) {		this.name = name;	}		public void setName(String name) {		System.out.println("setName");		this.name = name;	}		public void init(){		System.out.println("init");	}		public void destroy(){		System.out.println("destroy");	}	@Override	public String toString() {		return "Person [name=" + name + "]";	}}

 

Person2

package com.liu.lesson3;public class Person2 {	private String name;		public Person2() {		System.out.println("Constructor");	}		public Person2(String name) {		this.name = name;	}		public void setName(String name) {		System.out.println("setName");		this.name = name;	}		public void init(){		System.out.println("init");	}		public void destroy(){		System.out.println("destroy");	}	@Override	public String toString() {		return "Person2 [name=" + name + "]";	}}

StaticPersonFactory

package com.liu.lesson3;import java.util.HashMap;public class StaticPersonFactory {	private static HashMap<String,Person> persons = new HashMap<String,Person>();		static{		persons.put("liu", new Person("liu"));		persons.put("zhang", new Person("zhang"));	}		public static Person getPerson(String name){		return persons.get(name);	}}

 

Test

package com.liu.lesson3;import org.springframework.context.applicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.liu.lesson3.controller.UserController;public class Test {	public static void main(String[] args) {		// TODO Auto-generated method stub		ApplicationContext cxt = new ClassPathXmlApplicationContext("Lesson3.xml");		Person person = (Person) cxt.getBean("person");				Person person2 = (Person) cxt.getBean("person2");				System.out.println("person2:"+person2);				Person person3 = (Person) cxt.getBean("person3");				System.out.println("person3:"+person3);				Person2 person4 = (Person2) cxt.getBean("person4");				System.out.println("person4:"+person4);				//Controller execute		UserController userController = (UserController)cxt.getBean("userController");		userController.execute();	}}

UserCompnent

package com.liu.lesson3.compnent;import org.springframework.stereotype.Component;@Componentpublic class UserCompnent {}

UserController

package com.liu.lesson3.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import com.liu.lesson3.service.IUserService;@Controllerpublic class UserController {		@Autowired	IUserService userService;		public void execute(){		System.out.println("execute");		userService.addUser();	}}

IUserDAO

package com.liu.lesson3.dao;public interface IUserDAO {	public void add();}

UserDAO

package com.liu.lesson3.dao;import org.springframework.stereotype.Repository;@Repositorypublic class UserDAO implements IUserDAO {	@Override	public void add() {		System.out.println("add");			}}

IUserService

package com.liu.lesson3.service;public interface IUserService {	public void addUser();}

UserService

package com.liu.lesson3.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.liu.lesson3.dao.IUserDAO;@Servicepublic class UserService implements IUserService {	@Autowired	private IUserDAO userDAO;		@Override	public void addUser() {		// TODO Auto-generated method stub		System.out.println("addUser");		userDAO.add();	}}

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表