欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

spring入門詳解

林子帆2年前15瀏覽0評論

spring入門詳解?

一、Spring概述

Spring是一個輕量級的DI/IOC和AOP的容器框架

??輕量級:簡單好用,通常來說功能不強大(但spring功能強大)

??DI(依賴注入):動態(tài)的向某個對象提供它所需要的其他對象,也可以為對象的屬性字段賦值。(依賴注入又分為xml注入和注解注入)

??IOC(控制翻轉(zhuǎn)):由spring控制對象的生命周期(創(chuàng)建,銷毀)

??AOP(面向切面編程):解決重復代碼。將相同的邏輯抽取出來,即將業(yè)務邏輯從應用服務中分離出來。然后以攔截的方式作用在一個方法的不同位置。

二、Spring入門

1.引入庫

導包的時候注意,現(xiàn)在使用Spring,要完成最小導包,即:需要什么jar包,我們就導入什么jar包,用到了其他功能,再添加相應jar包。這個對認識框架的包是非常有幫助的:

2.導入Spring配置文件

1. 在classpath的根目錄下新建一個applicationContext.xml配置文件,文件名可以自定義,但是通常使用ApplicationContext這個名字:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/Beans/spring-beans.xsd">

<bean id="..." class="...">

<!-- collaborators and configuration for this bean go here -->

</bean>

</beans>

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

3.編寫邏輯代碼

public class MyBean {

public void hello(){

System.out.println("hello spring...");

}

}

1

2

3

4

5

6

1

2

3

4

5

6

4.將這個類交給Spring去管理即注冊到Spring容器中

在配置文件中將這個Java類交給Spring管理。在applicationContext.xml中配置

<beans ...>

<bean id="myBean" class="cn.itsource._01_hello.MyBean"></bean>

</beans>

1

2

3

4

1

2

3

4

5.Spring容器的實例化

Spring容器對象有兩種:BeanFactory和ApplicationContext(推薦使用)

BeanFactory

@Test

public void testHelloSpring1() throws Exception {

/**

*我們第一步是要啟動框架,而啟動框架則需要拿到Spring的核心對象

*咱們學習的第一個核心對象是BeanFactory : 顧名思義,這是一個創(chuàng)建Bean的工廠

*而Bean工廠創(chuàng)建對象又必需拿到配置文件中的數(shù)據(jù)

*因為:我們的第一步讀取配置文件,拿到BeanFactory工廠

*/

//第一步:讀取資源文件

Resource resource = new ClassPathResource("applicationContext.xml");

//第二步:拿到核心對象 BeanFactory

BeanFactory factory = new XmlBeanFactory(resource);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

ApplicationContext(推薦使用)

@Test

public void testHelloSpring2() throws Exception {

/**

*我們第一步是要啟動框架,而啟動框架則需要拿到Spring的核心對象

*咱們學習的第一個核心對象是BeanFactory : 顧名思義,這是一個創(chuàng)建Bean的工廠

*而Bean工廠創(chuàng)建對象又必需拿到配置文件中的數(shù)據(jù)

*因為:我們的第一步讀取配置文件,拿到BeanFactory工廠

*/

//加載工程classpath下的配置文件實例化

String conf = "applicationContext.xml";

ApplicationContext factory = new ClassPathXmlApplicationContext(conf);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

6.獲取對象方式

方式一:通過id直接拿到相應的Bean對象

//通過xml中配置的id拿到對象

MyBean bean = (MyBean)factory.getBean("myBean");

System.out.println(bean);

1

2

3

4

1

2

3

4

方式二:通過id與對象的Class對象拿到Bean對象(推薦使用)

//通過id與對象的class拿到Bean對象

MyBean bean = factory.getBean("myBean",MyBean.class);

System.out.println(bean);

1

2

3

4

1

2

3

4

三、Spring依賴注入

1.xml注入

顧名思義:在xml中進行配置,但是這種方式必須有對應的setter方法,所有這種注入方式又稱之為屬性注入或setter方法注入

public class MyBean{

private OtherBean otherBean;

public void hello(){

otherBean.hello();

}

public void setOtherBean(OtherBean otherbean){

this.OtherBean = OtherBean

}

}

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

public class OtherBean{

public void hello(){

System.out.println("otherbean hello");

}

}

1

2

3

4

5

6

1

2

3

4

5

6

//xml配置:

<bean id="otherBean" class="cn.itsource.bean.OtherBean"></bean>

<bean id="myBean" class="cn.itsource.bean.MyBean">

<property name="otherBean" ref="otherBean"></property>

</bean>

1

2

3

4

5

6

1

2

3

4

5

6

2.注解注入

顧名思義:通過注解實現(xiàn)注入,這種方式可以將注解寫在setter方法上,也可以寫在字段上,如果寫在字段上可以不需要setter方法

2.1方案一:使用@Autowired

@Autowired為Spring提供的注解

public class MyBean{

@Autowired

private OtherBean otherBean;

public void hello(){

otherBean.hello();

}

}

public class OtherBean{

public void hello(){

System.out.println("otherbean hello");

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//xml配置:

<bean id="otherBean" class="cn.itsource.bean.OtherBean"></bean>

<bean id="myBean" class="cn.itsource.bean.MyBean"></bean>

1

2

3

1

2

3

2.2方案二:使用@Resource

public class MyBean{

@Resource

private OtherBean otherBean;

public void hello(){

otherBean.hello();

}

}

public class OtherBean{

public void hello(){

System.out.println("otherbean hello");

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

2.3@Autowired和@Resource區(qū)別

@Autowired:默認類型匹配再按照名字匹配

@Resource:默認按照名字匹配然后按照類型匹配