uniapp中元件屬性設定不生效的解決方案
阿新 • • 發佈:2021-12-08
Spring學習筆記01
一、Spring
Spring是一個開源的免費框架;Spring是一個輕量級的非入侵式的框架;控制反轉ioc,面向切片程式設計AOP;支援事務的處理對框架整合的支援。
二、IOC建立物件的方式
1.預設方式是使用無參構造方法建立物件
2.當實體類中有有參構造方法時:
<!--第一種方式通過下標索引賦值--> <bean id="user1" class="com.hx.pojo.User" name="blinks"> <constructor-arg index="0" value="JENNIE"/> <constructor-arg index="1" value="female"/> </bean> <!--第二種方式通過引數型別建立(不推薦)--> <bean id="user2" class="com.hx.pojo.User" name="blinks"> <constructor-arg type="java.lang.String" value="LISA"/> <constructor-arg type="java.lang.String" value="female"/> </bean> <!--第三章方式通過引數名建立--> <bean id="user3" class="com.hx.pojo.User" name="blinks"> <constructor-arg name="name" value="BP"/> <constructor-arg name="gender" value="female"/> </bean>
三、applicationContext.xml檔案配置
1.起別名
見下例
方式一:
<!--將user1替換成qwertyu-->
<alias name="user1" alias="qwertyu"/>
方式二(bean的配置):
<!--將user3替換成blinks--> <bean id="user3" class="com.hx.pojo.User" name="blinks"> <constructor-arg name="name" value="BP"/> <constructor-arg name="gender" value="female"/> </bean>
四、依賴注入
1.構造器注入
2.set方式注入
<bean id="student" class="com.hx.pojo.Student"> <!--普通注入--> <property name="name" value="JENNIE"/> <!--bean注入--> <property name="address" ref="address"/> <!--陣列注入--> <property name="books"> <array> <value>LIGHT UP THE SKY</value> <value>THE MOVIE</value> <value>THE SHOW</value> </array> </property> <!--LIST注入--> <property name="hobbys"> <list> <value>SING</value> <value>DANCE</value> <value>TAKE PHOTO</value> </list> </property> <!--MAP注入--> <property name="card"> <map> <entry key="idNum" value="0327"/> <entry key="bankCard" value="123456789"/> </map> </property> <!--SET注入--> <property name="games"> <set> <value>LOL</value> <value>CF</value> <value>NZ</value> </set> </property> <!--NULL值注入--> <property name="wife"> <null/> </property> <!--Properties注入--> <property name="info"> <props> <prop key="practiceNum">0327</prop> <prop key="solo">LALISA</prop> <prop key="gender">female</prop> <prop key="nickName">lalalalisa</prop> </props> </property> </bean>
3.拓展方式注入(p名稱空間注入和c名稱空間注入)
<?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:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--P名稱空間注入-->
<bean id="user" class="com.hx.pojo.User" p:name="LISA" p:age="18"/>
<!--C名稱空間注入-->
<bean id="user2" class="com.hx.pojo.User" c:name="JENNIE" c:age="20" scope="singleton"/>
</beans>
p名稱空間注入和c名稱空間注入時標頭檔案需要加入這兩個url
五、Bean的作用域
①單例模式"singleton":(Spring預設機制)建立的物件均為同一個
<bean id="user2" class="com.hx.pojo.User" c:name="JENNIE" c:age="20" scope="singleton"/>
②原型模式"prototype":每次從容器中get的時候都會建立一個新的物件
<bean id="user2" class="com.hx.pojo.User" c:name="JENNIE" c:age="20" scope="prototype"/>
③其餘的request、session、application在web開發中使用到
六、Bean的自動裝配
自動裝配:自動裝配是Spring滿足bean依賴的一種方式,Spring會在上下文中自動尋找並自動給bean裝配屬性
1.在xml中顯示的配置
<bean id="person" class="com.hx.pojo.Person" autowire="byName"/>
byName:需要保證所有bean的id唯一,並且這個bean需要和自動注入的屬性的set方法一致
byType:需要保證所有的bean的class一致,並且這個bean需要和自動注入的屬性的型別一致
2.使用註解自動裝配
第一步:xml標頭檔案匯入約束並配置註解的支援(重點)
標準的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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<context:annotation-config/>
<bean id="cat" class="com.hx.pojo.Cat"/>
<bean id="dog" class="com.hx.pojo.Dog"/>
<bean id="person" class="com.hx.pojo.Person"/>
</beans>
第二步:在屬性上加上註解@Autowired
@Autowired
private Cat cat;
@Autowired
private Dog dog;
private String name;
自動裝配的環境比較複雜時可以配合@Qualifier註解一起使用:自動裝配無法通過一個註解@Autowired完成的時候就可以使用@Qualifier(value="xxx")去指定一個唯一的bean物件注入
@Autowired
@Qualifier(value = "cat1")
private Cat cat;
@Autowired
private Dog dog;
private String name;
@Resource註解也可以實現自動裝配
@Resource和@Autowired的區別:都是用來自動裝配的,都可以放在屬性欄位上,@Autowired通過byName方式實現,要求這個物件存在@Resource預設通過byName方式實現,如果找不到這個名字則通過byType實現,如果兩個都找不到就會報錯。
七、註解開發
註解
1.@Component Component 元件 等價於
<bean id="user" class="com.hx.pojo.User"/>
2.@Value("LISA") 相當於
<property name="name" value="LISA"/>
3.@Component的幾個衍生註解:@Repository @Service @Controller這些註解功能都是一樣的,代表將這些類註冊到Spring中裝配bean
自動裝配註解
1.@Autowired
2.@Nullable:該註解標記的欄位允許為null
3.@Qualifler(value="xxx")配合@Autowired註解一起可以適用於自動裝配環境比較複雜的情況
4.@Resource註解:@Resouce(name = "xxx")
作用域註解
1.@Scope