spring25说明文档Word文件下载.docx
《spring25说明文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《spring25说明文档Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
System.out.println("
usersaved!
"
);
UserService.java
publicclassUserService{
privateUserDAOuserDAO;
publicvoidadd(Useruser){
userDAO.save(user);
publicUserDAOgetUserDAO(){
returnuserDAO;
publicvoidsetUserDAO(UserDAOuserDAO){
this.userDAO=userDAO;
beans.xml
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
beansxmlns="
http:
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans-2.5.xsd"
<
beanid="
u"
class="
com.bjsxt.dao.impl.UserDAOImpl"
/bean>
userService"
com.bjsxt.service.UserService"
<
propertyname="
userDAO"
ref="
/>
/beans>
test
publicclassUserServiceTest{
@Test
publicvoidtestAdd()throwsException{
ApplicationContextctx=newClassPathXmlApplicationContext("
beans.xml"
UserServiceservice=(UserService)ctx.getBean("
Useru=newUser();
u.setUsername("
zhangsan"
u.setPassword("
service.add(u);
Spring注入类型
setter注入:
使用构造方法注入(可以忘记):
publicUserService(UserDAOuserDAO){
super();
!
--
-->
constructor-arg>
<
refbean="
/>
/constructor-arg>
接口注入(可以忘记)
Id_Name
也可以换成name
beanname="
简单属性注入(了解)
UserDAOImpl.java
privateintdaoId;
privateStringdaoStatus;
publicintgetDaoId(){
returndaoId;
publicvoidsetDaoId(intdaoId){
this.daoId=daoId;
publicStringgetDaoStatus(){
returndaoStatus;
publicvoidsetDaoStatus(StringdaoStatus){
this.daoStatus=daoStatus;
@Override
publicStringtoString(){
returnthis.daoId+"
:
+this.daoStatus;
daoId"
value="
8"
/property>
daoStatus"
good"
Bean的生存范围scope
默认是singleton每次拿出bean都是同一对象
Prototype每次取出的不一样
scope="
prototype"
UserServiceservice2=(UserService)ctx.getBean("
System.out.println(service==service2);
集合装配
privateSet<
String>
sets;
privateList<
lists;
privateMap<
String,String>
maps;
publicSet<
getSets(){
returnsets;
publicvoidsetSets(Set<
sets){
this.sets=sets;
publicList<
getLists(){
returnlists;
publicvoidsetLists(List<
lists){
this.lists=lists;
publicMap<
String,String>
getMaps(){
returnmaps;
publicvoidsetMaps(Map<
maps){
this.maps=maps;
publicUserDAOImpl(){
return"
setssize:
+sets.size()+"
|listssize:
+lists.size()+"
|mapssize:
+maps.size();
sets"
set>
<
value>
1<
/value>
2<
/set>
lists"
list>
3<
/list>
maps"
map>
entrykey="
1"
/entry>
2"
3"
4"
/map>
UserServiceTest.java
UserDAOu1=(UserDAO)ctx.getBean("
System.out.println(u1);
自动装配(AutoWire)
daoId="
+daoId;
userDAO2"
autowire="
byName"
System.out.println(service.getUserDAO());
Bean的生命周期
Init-megthoddestroy-methd不要和prototype一起使用(了解)
加上prototype不会调用destroy方法
publicvoidinit(){
init"
publicvoiddestroy(){
destroy"
init-method="
destroy-method="
Annotation
Annotation第一步
a)修改xml文件,参考文档<
context:
annotation-config/>
@Autowired
a)默认按类型bytype
b)如果想用byname,使用@Qulifier
c)写在privatefield(第三种注入形式)(不建议,应写在set上,破坏封装)
d)如果写在set上,@qualifier需要写在参数上
@Autowired
publicvoidsetUserDAO(@Qualifier("
)UserDAOuserDAO){//如果有两个bean用此指定用哪个类型的bean
context="
//www.springframework.org/schema/context"
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
//www.springframework.org/schema/context
//www.springframework.org/schema/context/spring-context-2.5.xsd"
u2"
>
Test
ClassPathXmlApplicationContextctx=newClassPathXmlApplicationContext("
service.add(newUser());