2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

網上商城實戰篇之前臺商品信息的顯示

更新時間:2018-07-24 來源:黑馬程序員 瀏覽量:

IOC
          inversion of Controller 控制反轉。

由我們自己實例化的對象交給spring容器來實始化。這時對象的初始化的權利就會反轉。

DI
                dependency injection 依賴注入
在spring框架負責創建Bean對象時,動態將依賴對象注入到Bean組件

IOC/DI區別
                IOC 控制反轉,是指對象實例化權利由spring容器來管理
                DI 依賴注入 在spring創建對象的過程中,對象所依賴的屬性通過配置注入對象中。


Spring Bean基本步驟

1.導入相關jar包

        spring-beans-4.2.4.RELEASE.jar
        spring-context-4.2.4.RELEASE.jar
        spring-core-4.2.4.RELEASE.jar
        spring-expression-4.2.4.RELEASE.jar


2.導入相關日志包

        commons-logging-1.2.jar
        log4j-1.2.16.jar
        
3.在項目的src目錄下創建applicationContext.xml文件

        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
                        "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
        <beans>
                <bean id="userService" class="com.b3a4a.ioc.UserServiceImpl"> 
                        <!-- 通過依賴注入將cnB3a4a這個值注到實例對象的info屬性中 -->
                        <property name="info" value="cnB3a4a"></property> 
                </bean>
        </beans>
        
        注意:
        
        <bean></bean>標簽注意事項
        
                在開發中可以使用id或name 
                id它遵守xml規范,名稱中不能包含特殊符號                 
                name它是為了更好的擴展,在name中可以包含一些特殊符號,例如"_"


4.創建接口(IUserService)和實現類(UserServiceImpl)

        public interface IUserService {
                public void hello();
        }


        public class UserServiceImpl implements IUserService {
                private String info;
                @Override
                public void hello() {
                        System.out.println("hello " + info);
                }
                
                //省略get/set方法
                ......
        }

5.獲取對象實例

        @Test
        public void test(){
                ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
                IUserService service = (IUserService) applicationContext.getBean("userService");
                service.sayHello();
        }


上面就是一個基本的使用步驟了,但是這個只是一個最基本的入門,那么接下來咱們則開始給大家一點點的引入

首先,大家需要明確一個問題,那就是我們這個Spring Bean這塊的作用是什么?
很簡單,就是我們相關對象以前是通過自己new 對象的形式來創建的,現在呢,則改為讓框架統一對咱們的對象進行管理.所以咱們先來看下在Spring中,我們的對象究竟是有誰來創建的.當然.說簡單點,其實底層實現起來是通過 解析xml配置文件+反射+工廠模式來實現的, 而我們在使用的過程中,我們真正需要了解的就是所謂的對象是通過哪些工廠來實現的呢?

1)BeanFactory
2)ApplicationContext
3)ClassPathXmlApplicationContext
4)FileSystemXmlApplicationContext
5)WebApplicationContext

他們之間的關系
BeanFactory(根接口)        -->                ApplicationContext(子接口)        
至于ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,WebApplicationContext則是一個個具體的實現類,當然這里先和大家說聲,真實開發中都是使用
WebApplicationContext來實例化咱們的spring bean容器,但是這個工廠我們不需要自己去創建,通過一些配置,我們就能讓這個對象在咱們項目啟動的時候自動初始化~


創建工廠的方式
        
    a)通過BeanFactory來獲取
          BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
    b)通過ClassPathXmlApplicationContext來獲取
         ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    c)通過FileSystemXmlApplicationContext來獲取
         ApplicationContext factory = new FileSystemXmlApplicationContext("src/applicationContext.xml");

通過工廠獲取實例對象

                IBean bean = (IBean) factory.getBean("bean");

但是這里有一個小小的知識點需要告訴大家,BeanFactory是延遲加載,ApplicationContext是加載配置文件的時候加載

ok.那么到此為止,咱們對Springbean這塊有了個基本認識,下次的話就給大家去聊下如何玩轉ioc和di(xml和注解的方式)
 

作者:黑馬程序員javaEE培訓學院

首發:http://java.itheima.com/

 

   

分享到:
在線咨詢 我要報名
和我們在線交談!