Spring-專案搭建
阿新 • • 發佈:2021-06-24
XML 配置檔案建立
目錄結構
main
│
├─java
│ └─com
│ ├─pojo
│ │ User.java
│ │
│ └─test
│ AppConfig.java
│
└─resources
applicationConrext.xml
說明
- 使用
ClassPathXmlApplicationContext
可以基於 配置檔案 載入 Spring 的上下文。- 英文單詞讀音:
克拉斯 爬服 埃克斯邁歐 阿普雷 kei 什 康泰斯特
- 英文單詞讀音:
- 注意:
- 需要使用
<bean> </bean>
標籤將 類注入到 Spring 容器中。
- 需要使用
例項
applicationContext.xml
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="user" class="com.pojo.User"> <property name="name" value="琴江"/> </bean> </beans>
- 實體類
package com.pojo;
public class User {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
- 測試
package com.test; import com.pojo.User; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AppConfig { public static void main(String[] args) { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationConrext.xml"); User user = applicationContext.getBean("user",User.class); System.out.println(user.getName()); } }
註解開發建立
目錄結構
java
└─com
│ Entitlement.java
│ JavaConfigTest.java
│
└─config
AppConfig.java
說明
-
使用
AnnotationConfigApplicationContext
可以實現基於 Java 配置類載入 Spring 的應用上下文。 -
注意:
- 需要在 配置類 中使用
@Bean
標籤將 類 注入到 Spring 容器中。 - 或者使用
@ComponentScan
註解自動將 符合條件的注入到 Spring 容器中。
- 需要在 配置類 中使用
示例
- AppConfig.java
package com.Test.config;
import com.Test.Entitlement;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.Test") // 自動掃描
public class AppConfig {
@Bean
public Entitlement entitlement() {
return new Entitlement();
}
@Bean // 沒指定名字,該 Bean 的 id 就是方法名
public Entitlement Entitlement() {
return new Entitlement();
}
}
- Entitlement.java
package com.Test;
public class Entitlement {
private String name;
private int time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
- JavaConfigTest.java
package com.Test;
import com.Test.config.AppConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class JavaConfigTest {
public static void main(String[] arg) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
Entitlement ent = (Entitlement)ctx.getBean("entitlement");
ent.setName("entitlement11");
ent.setTime(1);
System.out.println(ent.getName());
System.out.println(ent.getTime());
Entitlement ent2 = (Entitlement)ctx.getBean("Entitlement");
ent2.setName("Entitlement22");
ent2.setTime(2);
System.out.println(ent2.getName());
System.out.println(ent2.getTime());
ctx.close();
}
}
XML 配合 註解建立
目錄結構
main
├─java
│ └─com
│ ├─pojo
│ │ User.java
│ │
│ └─test
│ AppConfig.java
│
└─resources
applicationContext.xml
說明
- 使用
ClassPathXmlApplicationContext
可以基於 配置檔案 載入 Spring 的上下文。
例項
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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 匯入註解支援 -->
<context:annotation-config/>
<!-- 指定要掃描的包,這個包下的註解就會生效 -->
<context:component-scan base-package="com.pojo"/>
</beans>
- 實體類
package com.pojo;
import org.springframework.stereotype.Component;
@Component
public class User {
public String name = "秦軍";
}
- 測試
package com.test;
import com.pojo.User;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppConfig {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationConrext.xml");
User user = applicationContext.getBean("user",User.class);
System.out.println(user.name);
}
}