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

中国工程建设监理协会网站wordpress魔客

中国工程建设监理协会网站,wordpress魔客,北京建设门户网站,吴江住宅城乡建设局网站xml 配置 顾名思义,就是将bean的信息配置.xml文件里,通过Spring加载文件为我们创建bean。这种方式出现很多早前的SSM项目中,将第三方类库或者一些配置工具类都以这种方式进行配置,主要原因是由于第三方类不支持Spring注解。 优点…

xml 配置

顾名思义,就是将bean的信息配置.xml文件里,通过Spring加载文件为我们创建bean。这种方式出现很多早前的SSM项目中,将第三方类库或者一些配置工具类都以这种方式进行配置,主要原因是由于第三方类不支持Spring注解。

  • 优点: 可以使用于任何场景,结构清晰,通俗易懂

  • 缺点: 配置繁琐,不易维护,枯燥无味,扩展性差

举例

  1. 配置xx.xml文件
  2. 声明命名空间和配置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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- services --><bean id="userService" class="tech.pdai.springframework.service.UserServiceImpl"><property name="userDao" ref="userDao"/><!-- additional collaborators and configuration for this bean go here --></bean><!-- more bean definitions for services go here -->
</beans>

Java 配置

将类的创建交给我们配置的JavcConfig类来完成,Spring只负责维护和管理,采用纯Java创建方式。其本质上就是把在XML上的配置声明转移到Java配置类中

  • 优点:适用于任何场景,配置方便,因为是纯Java代码,扩展性高,十分灵活

  • 缺点:由于是采用Java类的方式,声明不明显,如果大量配置,可读性比较差

举例

  1. 创建一个配置类, 添加@Configuration注解声明为配置类
  2. 创建方法,方法上加上@bean,该方法用于创建实例并返回,该实例创建后会交给spring管理,方法名建议与实例名相同(首字母小写)。注:实例类不需要加任何注解
/*** @author pdai*/
@Configuration
public class BeansConfig {/*** @return user dao*/@Bean("userDao")public UserDaoImpl userDao() {return new UserDaoImpl();}/*** @return user service*/@Bean("userService")public UserServiceImpl userService() {UserServiceImpl userService = new UserServiceImpl();userService.setUserDao(userDao());return userService;}
}

注解配置

通过在类上加注解的方式,来声明一个类交给Spring管理,Spring会自动扫描带有@Component,@Controller,@Service,@Repository这四个注解的类,然后帮我们创建并管理,前提是需要先配置Spring的注解扫描器。

  • 优点:开发便捷,通俗易懂,方便维护。

  • 缺点:具有局限性,对于一些第三方资源,无法添加注解。只能采用XML或JavaConfig的方式配置

举例

  1. 对类添加@Component相关的注解,比如@Controller,@Service,@Repository
  2. 设置ComponentScan的basePackage, 比如<context:component-scan base-package='tech.pdai.springframework'>, 或者@ComponentScan("tech.pdai.springframework")注解,或者 new AnnotationConfigApplicationContext("tech.pdai.springframework")指定扫描的basePackage.
/*** @author pdai*/
@Service
public class UserServiceImpl {/*** user dao impl.*/@Autowiredprivate UserDaoImpl userDao;/*** find user list.** @return user list*/public List<User> findUserList() {return userDao.findUserList();}}

依赖注入的三种方式

常用的注入方式主要有三种:构造方法注入(Construct注入),setter注入,基于注解的注入(接口注入)

setter方式

  • 在XML配置方式中,property都是setter方式注入,比如下面的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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- services --><bean id="userService" class="tech.pdai.springframework.service.UserServiceImpl"><property name="userDao" ref="userDao"/><!-- additional collaborators and configuration for this bean go here --></bean><!-- more bean definitions for services go here -->
</beans>

本质上包含两步:

  1. 第一步,需要new UserServiceImpl()创建对象, 所以需要默认构造函数
  2. 第二步,调用setUserDao()函数注入userDao的值, 所以需要setUserDao()函数

所以对应的service类是这样的:

/*** @author pdai*/
public class UserServiceImpl {/*** user dao impl.*/private UserDaoImpl userDao;/*** init.*/public UserServiceImpl() {}/*** find user list.** @return user list*/public List<User> findUserList() {return this.userDao.findUserList();}/*** set dao.** @param userDao user dao*/public void setUserDao(UserDaoImpl userDao) {this.userDao = userDao;}
}
  • 在注解和Java配置方式下
/*** @author pdai*/
public class UserServiceImpl {/*** user dao impl.*/private UserDaoImpl userDao;/*** find user list.** @return user list*/public List<User> findUserList() {return this.userDao.findUserList();}/*** set dao.** @param userDao user dao*/@Autowiredpublic void setUserDao(UserDaoImpl userDao) {this.userDao = userDao;}
}

在Spring3.x刚推出的时候,推荐使用注入的就是这种, 但是这种方式比较麻烦,所以在Spring4.x版本中推荐构造函数注入。

构造函数

  • 在XML配置方式中<constructor-arg>是通过构造函数参数注入,比如下面的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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- services --><bean id="userService" class="tech.pdai.springframework.service.UserServiceImpl"><constructor-arg name="userDao" ref="userDao"/><!-- additional collaborators and configuration for this bean go here --></bean><!-- more bean definitions for services go here -->
</beans>
http://www.yayakq.cn/news/649066/

相关文章:

  • 三星网上商城发什么快递seo站长综合查询工具
  • 湖南做网站 地址磐石网络北京网络电视台
  • 搭建网站的步骤和顺序网站小编可以在家做吗
  • 林州企业网站建设个人如果做网站赚钱吗
  • 珠海网站建设工程外贸出口流程的基本流程图
  • 短视频素材下载网站 免费百度网盘做网站
  • 赔率网站怎么做wordpress 添加icon
  • 本机网站建设一个备案号可以放几个网站
  • 徐州网站建设 网站制作做贸易要看什么网站
  • 做微信小程序和网站那个简单金馆长做图网站
  • 生产备案号怎么查询网站企业网站建设存在的典型问题有哪些?
  • 网站建设目录规范坪洲网站建设
  • 晋江做网站的公司博客论坛网站开发
  • 网站开发 适应 手机 电脑什么叫网页
  • 怎样如何做网站赚钱推广渠道
  • 微网站开发平台免费新手做电商哪个平台好
  • 网站怎么做免费推广方案设计用哪些网站
  • 石碣网站仿做政务移动门户网站建设方案
  • wordpress主题演示站点app代理推广平台
  • 十堰做网站的qq邮箱网页版登录
  • 自己用笔记本做网站做百度商桥网站
  • 诸城建设局网站用户体验好的网站
  • 临潼城市建设局网站分类网站 模板
  • 网站菜单 网站导航wordpress+媒体路径
  • 天津市建设工程定额网站常见的网络营销与推广的方式
  • 门户网站制作的公司网站建设v
  • 北京上海网站建设公司怎么生成域名做网站
  • 珠海网站设计公司公司网站还有用吗
  • 完本小说做多的网站wordpress 什么值得买 主题
  • 零起飞网站建设工作室国内新闻