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
?
?
轉載于:https://www.cnblogs.com/jnxj/p/8608199.html
總結
以上是生活随笔為你收集整理的spring入门(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos入门-3
- 下一篇: Redis 4.0.2分布式锁的Java