Spring詳解使用註解開發流程
在Spring4之後 要使用註解開發 必須保證aop包導入瞭
使用註解需要導入context約束 增加 註解的支持
<?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/> </beans>
@Component:組件放在類上 說明這個類被Spring管理瞭 就是bean
import org.springframework.stereotype.Component; //等價於<bean id="user" class="com.kero.pojo.User"/> @Component public class User { public String name = "xxx"; }
@Value
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; //等價於<bean id="user" class="com.kero.pojo.User"/> @Component public class User { @Value("xxx") //等價於<property name="name" value="xxx"/> public String name; }
或者
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; //等價於<bean id="user" class="com.kero.pojo.User"/> @Component public class User { public String name; @Value("xxx") public void setName(String name) { this.name = name; } }
@Component有幾個衍生的註解 我們在Web開發中會按照MVC三層架構分層
·dao[@Repository]
·service[@Service]
·controller[@Controller]
這四個註解功能一樣 都是代表將某個類註冊到Spring中 裝配Bean
註解的作用域@Scope
@Scope 放在類上,默認是單例模式
@Scope(prototype)是原型模式,每次創建的都是一個新的對象
其作用等價於
補充:
@Scope("singleton") 或者@Scope 單例模式 下面代碼輸出結果為true
@Scope("prototype")下面代碼輸出結果為false
import com.kero.pojo.User; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = context.getBean("user", User.class); User user2 = context.getBean("user", User.class); System.out.println(user==user2); } }
xml vs 註解
·xml更加萬能 適用於任何場合 維護簡單方便
·註解 不是自己類使用不聊 維護相對復雜
最佳實踐:xml用來管理bean
註解隻負責完成屬性的註入
我們在使用的過程中 需要註意 使用以下代碼
<!--指定要掃描的包 這個包下的註解就會生效->--> <context:component-scan base-package="com.kero"/> <!--開啟註解的支持--> <context:annotation-config/>
針對最佳實踐的例子
<?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:component-scan base-package="com.kero"/> <!--開啟註解的支持--> <context:annotation-config/> <bean id="user" class="com.kero.pojo.User" scope="prototype"/> </beans>
import org.springframework.beans.factory.annotation.Value; public class User { @Value("XXX") public String name; public void setName(String name) { this.name = name; } }
到此這篇關於Spring詳解使用註解開發流程的文章就介紹到這瞭,更多相關Spring註解內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!