当前位置: 首页 > news >正文

重庆网站建设网页设计/电商网站运营

重庆网站建设网页设计,电商网站运营,河南网络科技网站建设,查看网站信息图标怎么做自动装配:根据指定的策略,在IOC容器中匹配某一个bean,自动为指定的bean中所依赖的类类型或接口类型属性赋值。 首先我们来熟悉三层架构的创建过程: 三层架构为controller层,service层,dao层。 在service层里面创建ser…

自动装配:根据指定的策略,在IOC容器中匹配某一个bean,自动为指定的bean中所依赖的类类型或接口类型属性赋值。

首先我们来熟悉三层架构的创建过程:

三层架构为controller层,service层,dao层。

在service层里面创建serviceImpl,创建实现类,实现类要继承service层的接口。

dao层里面的实现类要继承

我们首先进行创建controller层

之后我们进行创建service层:

 同时创建service层接口的实现类,实现类同时继承该接口。

最后我们进行创建dao层:

 之后我们在controller层的类里面进行创建对service层的对象:

UserController:

package com.rgf.controller;import com.rgf.service.Impl.UserServiceImpl;
import com.rgf.service.UserService;public class UserController {private UserService userService;public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}
}

UserServiceImpl:

package com.rgf.service.Impl;import com.rgf.dao.UserDao;
import com.rgf.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao;public UserDao getUserDao() {return userDao;}public void setUserDao(UserDao userDao) {this.userDao = userDao;}
}

如果我们在UserController层里面进行创建方法:

package com.rgf.controller;import com.rgf.service.Impl.UserServiceImpl;
import com.rgf.service.UserService;public class UserController {private UserService userService;public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}public  void saveUser(){userService.saveUser();}
}

则我们需要在service接口里面创建该方法:

package com.rgf.service;public interface UserService {/*** 保存用户信息*/void saveUser();
}

我们在该实现类里面对该方法进行重写:

package com.rgf.service.Impl;import com.rgf.dao.UserDao;
import com.rgf.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao;public UserDao getUserDao() {return userDao;}public void setUserDao(UserDao userDao) {this.userDao = userDao;}@Overridepublic void saveUser() {userDao.saveUser();}
}

我们在该接口实现该方法:

package com.rgf.dao;public interface UserDao {/*** 保存用户信息*/void saveUser();
}

之后我们在该实现类对该方法进行重写:

package com.rgf.dao.Impl;import com.rgf.dao.UserDao;public class UserDaoImpl implements UserDao {@Overridepublic void saveUser() {System.out.println("保存成功");}
}

我们可以看到,我们在controller里面写方法,需要调用service层实现类里面的该方法,故service层的接口需要实现该方法,而service层的实现类需要重写该方法的同时调用dao层的该方法,dao层接口需要实现该方法,dao层的实现类进行构建该方法。

我们进行创建bean:

<?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="userController" class="com.rgf.spring.controller.UserController"><property name="userService" ref="userService"></property></bean><bean id="userService" class="com.rgf.spring.service.Impl.UserServiceImpl"><property name="userDao" ref="userDao"></property></bean><bean id="userDao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean>
</beans>

我们进行测试如下所示:

package com.rgf.spring.test;import com.rgf.spring.controller.UserController;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class AutowireByXMLTest {@Testpublic  void  testAutowire(){ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("spring-autowire.xml");UserController userController = ioc.getBean(UserController.class);userController.saveUser();}
}

运行之后如下所示:

 二、基于XML的自动装配之byType:

其中no为不自动装配

default为不设置,也是不装配

我们利用自动装配如下所示:

<?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="userController" class="com.rgf.spring.controller.UserController" autowire="byType"></bean><bean id="userService" class="com.rgf.spring.service.Impl.UserServiceImpl" autowire="byType"></bean><bean id="userDao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean>
</beans>

 我们运行之后如下所示:

<?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="userController" class="com.rgf.spring.controller.UserController" autowire="byType"></bean><bean id="userService" class="com.rgf.spring.service.Impl.UserServiceImpl" autowire="byType"></bean><bean id="service" class="com.rgf.spring.service.Impl.UserServiceImpl" autowire="byType"></bean><bean id="userDao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean><bean id="dao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean>
</beans>

此时出现报错。

我们进行运行之后如下所示:

 我们将中间的bean进行注解掉之后如下所示:

<?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="userController" class="com.rgf.spring.controller.UserController" autowire="byType"></bean><!--<bean id="userService" class="com.rgf.spring.service.Impl.UserServiceImpl" autowire="byType"></bean>--><bean id="userDao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean></beans>

我们运行之后如下所示:

出现空指针异常。

我们的测试类如下:

package com.rgf.spring.test;import com.rgf.spring.controller.UserController;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class AutowireByXMLTest {/*** 自动装配:* 根据指定的策略,在IOC容器中匹配某个bean,自动为bean中的类类型的属性或接口类型的属性赋值* 可以通过bean标签中的autowire属性设置自动装配的策略* 自动装配的策略:* no,default:表示不装配,即bean中的属性不会自动匹配某个bean为属性赋值,此时属性使用默认值* byType:根据要赋值的属性的类型,在IOC容器中匹配某个bean,为属性赋值* 注意:* a>若通过类型没有找到任何一个类型匹配的bean,此时不装配,属性使用默认值* b>通过类型找到了多个类型匹配的bean,此时会抛出异常:NoUniqueBeanDefinitionException* 总结:当使用byType实现自动装配时,IOC容器中有且只有一个类型匹配的bean能够为属性赋值。*/@Testpublic  void  testAutowire(){ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("spring-autowire.xml");UserController userController = ioc.getBean(UserController.class);userController.saveUser();}
}

  三、基于XML的自动装配之byName:

byName:把我们当前要赋值的属性的属性名作为bean的id,在IOC容器中匹配到某一个bean,来为当前的属性赋值。

<?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="userController" class="com.rgf.spring.controller.UserController" autowire="byName"></bean><bean id="userService" class="com.rgf.spring.service.Impl.UserServiceImpl" autowire="byName"></bean><bean id="service" class="com.rgf.spring.service.Impl.UserServiceImpl " autowire="byName"></bean><bean id="userDao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean><bean id="dao" class="com.rgf.spring.dao.Impl.UserDaoImpl"></bean>
</beans>

我们运行之后如下所示:

 总结如下所示:

* 自动装配:* 根据指定的策略,在IOC容器中匹配某个bean,自动为bean中的类类型的属性或接口类型的属性赋值* 可以通过bean标签中的autowire属性设置自动装配的策略* 自动装配的策略:* 1.no,default:表示不装配,即bean中的属性不会自动匹配某个bean为属性赋值,此时属性使用默认值* 2.byType:根据要赋值的属性的类型,在IOC容器中匹配某个bean,为属性赋值* 注意:* a>若通过类型没有找到任何一个类型匹配的bean,此时不装配,属性使用默认值* b>通过类型找到了多个类型匹配的bean,此时会抛出异常:NoUniqueBeanDefinitionException* 总结:当使用byType实现自动装配时,IOC容器中有且只有一个类型匹配的bean能够为属性赋值。*3.byName:将要赋值的属性的属性名作为bean的id,在IOC容器中匹配某个bean,为属性赋值* 总结:当类型匹配的bean有多个时,此时可以使用byName实现自动装配*/

http://www.jmfq.cn/news/4788505.html

相关文章:

  • 哪个网站做logo设计/如何在百度免费发布广告
  • 网络设计专业可以学什么/seo怎么推排名
  • 门户网站怎么建设/百度seo咋做
  • 免费一级做网站/绍兴seo推广
  • 网站建设与管理工资/可以入侵的网站
  • 此网站正在建设中/社交网络的推广方法有哪些
  • 辽宁响应式网站建设推荐/手机怎么在百度上发布信息
  • 毕业论文网站开发需要多少钱/8大营销工具指的是哪些
  • 网站设计介绍怎么写/网络推广推广
  • 山东省日照市有专业做网站的/长沙关键词优化方法
  • 迪虎科技网站建设/刚刚地震最新消息今天
  • 中国海关进出口信息查询/优化设计电子课本
  • wordpress邮箱如何解析/seo技术教程
  • 网站开发移动app/海外品牌推广
  • 做销售网站的好做么/seo入门教程视频
  • 上海网站建设费用多少/百度贴吧官网入口
  • 做网站跟app的区别/软文代发布
  • 监控视频怎么做直播网站/网站流量查询平台
  • 旅游找什么网站好/精准客源app
  • 网站建设公司武汉/品牌策略有哪些
  • 对视频播放网站做性能测试/抖音seo供应商
  • 电信网站备案流程图/蚁百杭州网站seo优化
  • 乐清 做网站 多少钱/百度有哪些app产品
  • 微信服务号菜单链接网站怎么做的/疫情放开最新消息今天
  • 学校html网站模板代码/淘宝关键词优化技巧
  • 做污事网站/想做电商怎么入手
  • 网站推广成功案例/中国百强企业榜单
  • 广州番禺服装网站建设/谷歌seo关键词优化
  • 湖南常德天气/seo排名优化厂家
  • 可以做fiting网站/网络营销策划书应该怎么写