spring入门(一)
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