首页 > 技术文章 > spring入门(一)

jnxj 2018-03-20 11:26 原文

1. xml装配Bean

假如有两个bean,一个是SuperMan,里面有个run()方法调用Behavior的run()方法,那个如何往SuperMan中注入Behavior对象呢

(1)SuperMan通过构造器注入Behavior对象

 

(2)EatBehavoirImpl实现Behavior的接口

 

(3)通过spring.xml配置注入

 

(4)运行测试

1.通过ApplicationContext去加载spring.xml配置文件

2.使用得到的上下文对象去获取对象

 

2.Aop切面编程

通过xml的配置可以在运行一个方法前或后去运行其他方法,比如日志操作等

(1) 比如要在superMan.run()方法运行前和后分别运行

 

那首先是要配置jar包

 

然后配置spring.xml

1.   装配bean

2.   配置aop,aspect ref指向附加方法的对象Id,

3.   pointcut (切点) expression表达式指向要运行的方法

execution(* com.spring.pojo.SuperMan.*(..))

第一个*指的是返回值,表示所有类型,然后空格,包名.类名.*(..)指类下所有的方法,

4.Before,After指运行前或后要运行的方法

3.深入装配Bean

3.1一个参数的构造

3.1.1.创建一个有参构造的WoMan类

 

3.1.2配置spring.xml去装配Woman类,通过<constructor-arg value="1000"></constructor-arg> 往有参构造中注入参数

 

3.1.3如果参数是类,则不能用value,而用ref

 

3.2两个参数构造(一个类,一个普通类型)

3.2.1修改Women类

3.2.2修改配置

 

3.2.3运行结果

3.3bean的作用域

3.3.1单例

 

通过配置scope属性的值来指定作用域

3.3.2作用域

3.4bean初始化和销毁执行方法

3.4.1对特定的bean

 

3.4.2同时也可以在beans中配置全局变量

 

4.基于注解装配bean

4.1开启注解

<context:component-scan>可以扫描基于类的注解

<context:component-scan>包含<context:annotation-config>,通常在使用<context:component-scan>后,就不再使用<context:annotation-config>

 

或者

4.2注解关键词

@Component是一个通用注解,可用于任何bean;

@Repository、@Service、@Controller是更有针对性的注解,也是@Component的子注解:

@Repository通常用于注解Dao类,即持久层

@Service通常用于注解Service类,即服务层

@Controller通常用于注解Controller类,即控制层(MVC)

@Bean(name = "stringStore",initMethod="init",destroyMethod = "destroy")指定初始化方法,和摧毁方法

@Scope的取值是:singleton、prototype、request、session、global session。对象生命周期

4.3注入属性

@Autowired自动装配属性

@ReSourse(name=””)当接口有多个实现可以通过这个关键字指定实现类

5.基于注解Aop

@Aspect

 

 

推荐阅读