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

番禺网站建设多少钱网页论坛怎么实现

番禺网站建设多少钱,网页论坛怎么实现,寓意好的公司名字,网页微信客户端下载作者简介#xff1a;大家好#xff0c;我是撸代码的羊驼#xff0c;前阿里巴巴架构师#xff0c;现某互联网公司CTO 联系v#xff1a;sulny_ann#xff08;17362204968#xff09;#xff0c;加我进群#xff0c;大家一起学习#xff0c;一起进步#xff0c;一起对抗…作者简介大家好我是撸代码的羊驼前阿里巴巴架构师现某互联网公司CTO 联系vsulny_ann17362204968加我进群大家一起学习一起进步一起对抗互联网寒冬 在《Spring Boot中JdbcTemplate源码分析》中讲到了自动配置相关的源代码实现。基于Spring Boot自动配置默认配置的组件我们可以来自定义JdbcTemplate的实例化。而多数据源的配置就是在此基础上实例化多个数据源和JdbcTemplate。 下面我们来看具体的源代码实现。 依赖类库 关于依赖类库与集成JdbcTemplate时的一样Spring Boot版本2.2.2.RELEASE。 相关pom依赖如下 dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency!--数据库连接相关-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-jdbc/artifactId /dependency dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId /dependencydependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope exclusions exclusion groupIdorg.junit.vintage/groupId artifactIdjunit-vintage-engine/artifactId /exclusion /exclusions /dependency/dependencies spring-boot-starter-jdbc是集成jdbc的依赖mysql-connector-java是基于mysql的依赖类库。lombok是简化代码的工具类如果不需要可去掉并去掉类中相关的注解。 spring-boot-starter-test为单元测试依赖的类库这里单元测试使用的是junit5注意使用方法与junit4差别比较大。 配置application application.properties配置如下​​​​​​​ spring.datasource.primary.jdbc-urljdbc:mysql://localhost:3306/spring?serverTimezoneUTCuseUnicodetruecharacterEncodingutf-8useSSLtruespring.datasource.primary.usernamerootspring.datasource.primary.passwordroot_123spring.datasource.primary.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.secondary.jdbc-urljdbc:mysql://localhost:3306/spring1?serverTimezoneUTCuseUnicodetrue\ characterEncodingutf-8useSSLtruespring.datasource.secondary.usernamerootspring.datasource.secondary.passwordroot_123spring.datasource.secondary.driver-class-namecom.mysql.cj.jdbc.Driver 既然是多数据源肯定要配置多个数据源的配置。与单数据源配置基本形式差不多。 需要注意的是第一个配置项的key为spring.datasource.primary.jdbc-url。与单数据源时使用的spring.datasource.url有所区别。不然启动时会抛出异常。 多数据源对应的Java配置 下面就需要我们自己来实例化DataSource和JdbcTemplate。相关的实例化也可参看源码解析文章中Spring Boot的实例化方式。 这里我们的实现如下​​​​​​​ Configurationpublic class DataSourceConfig {Primary Bean(name primaryDataSource) ConfigurationProperties(prefixspring.datasource.primary) public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); }Bean(name secondaryDataSource) ConfigurationProperties(prefixspring.datasource.secondary) public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); }Bean(nameprimaryJdbcTemplate) public JdbcTemplate primaryJdbcTemplate (Qualifier(primaryDataSource) DataSource dataSource ) { return new JdbcTemplate(dataSource); }Bean(namesecondaryJdbcTemplate) public JdbcTemplate secondaryJdbcTemplate(Qualifier(secondaryDataSource) DataSource dataSource) { return new JdbcTemplate(dataSource); } } Configuration声明该类为配置类。 Primary指定当出现多个相同类型的实例化对象时以该注解标注的为默认的。 Bean实例化Bean并将其注入到容器当中。这里分别实例化了primaryDataSource和secondaryDataSource两个DataSource以Bean的名称来区分。 ConfigurationProperties将前缀为spring.datasource.primary和前缀为spring.datasource.secondary的配置属性设置到对应的DataSource中。 随后实例化了两个JdbcTemplate直接通过new关键字创建并且把对应的DataSource作为构造参数传入。 经过该配置文件的配置便有了两个JdbcTemplate。 实体类 实体类如下​​​​​​​ Datapublic class Order {private int id;private String orderNo;private int amount;} Data为Lombok的注解自动生成一些默认的方法比如属性的getter/setter方法。 数据库 关于数据库的DDL如下​​​​​​​ CREATE TABLE tb_order ( id int(11) NOT NULL AUTO_INCREMENT, amount int(11) NOT NULL DEFAULT 1, order_no varchar(64) NOT NULL DEFAULT , PRIMARY KEY (id)) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8 同样的表在两个数据库中进行创建。 接口定义 定义OrderService接口​​​​​​​ public interface OrderService {/** * 创建订单 * param order 订单信息 * return 记录数 */ int save(Order order);/** * 保存到指定库 * param order 订单信息 * param jdbcTemplate jdbc * return */ int save(Order order, JdbcTemplate jdbcTemplate);} 接口实现​​​​​​​ Service(orderService)public class OrderServiceImpl implements OrderService {Resource Qualifier(primaryJdbcTemplate) private JdbcTemplate jdbcTemplate;Override public int save(Order order) { return jdbcTemplate.update(insert into tb_order(order_no, amount) values(?, ?), order.getOrderNo(), order.getAmount()); }Override public int save(Order order, JdbcTemplate secJdbcTemplate) { if (secJdbcTemplate ! null) { return secJdbcTemplate.update(insert into tb_order(order_no, amount) values(?, ?), order.getOrderNo(), order.getAmount()); } else { return jdbcTemplate.update(insert into tb_order(order_no, amount) values(?, ?), order.getOrderNo(), order.getAmount()); } }} 在实现方法中默认注入了主库的JdbcTemplate同时在原来的save方法中新增了一个JdbcTemplate参数可以根据是否传递该新的JdbcTemplate来决定使用哪个JdbcTemplate。 当然在此方法内也可以使用一个JdbcTemplate然后根据参数动态的修改该JdbcTemplate指向的具体实现类。可以根据具体情况进行灵活运用。 单元测试 单元测试类如下 Slf4jSpringBootTestclass OrderServiceTest {Resource private OrderService orderService;Resource Qualifier(primaryJdbcTemplate) private JdbcTemplate primaryJdbcTemplate;Resource Qualifier(secondaryJdbcTemplate) private JdbcTemplate secondaryJdbcTemplate;Test void save() { Order order new Order(); order.setOrderNo(N003); order.setAmount(10000); orderService.save(order, primaryJdbcTemplate); orderService.save(order, secondaryJdbcTemplate); }} 执行以上单元测试两个库中的tb_order表分别插入了一条数据。关于其他增删改查操作可参考保存方法进行扩展。
http://www.yutouwan.com/news/484843/

相关文章:

  • 旅行网站定制公司wordpress上传图片不显示
  • 自建站网址新公司刚成立做网站
  • 网站怎么制作小程序祥云建站平台
  • 天河移动网站建设安阳网站建设推广优化
  • 网站seo排名免费咨询网站素材类型
  • 建设银行网站登陆不上去东莞网站建设建网站
  • 南通建设网站wordpress 调用文章发布时间
  • 海口h5建站模板网站服务器ip地址查询
  • 织梦网站系统删除卖水果网站模板
  • 未来做哪些网站能致富建设银行个人客户
  • 网站切图是指什么精品网站建设哪家公司服务好
  • 月付购物网站建站wordpress手机版如何设置密码
  • 网页制作教程网站网页设计模板html代码五四主题
  • 关于军队建设网站注册小公司
  • 企业网站的推广方式和手段有哪些单位网站建设做到哪个科目
  • 手机网站宽度自适应大寺网站建设公司
  • 学校网站首页自己做网站需要什么条件
  • 哪几个小说网站做网编拿的钱多要解析做邮箱以及网站
  • 品牌网站源码珠海百度快速优化
  • 高端的饰品行业网站开发纯文字排版设计网站
  • 电子商务网站开发主要实现功能东台建设局网站
  • 安源网站建设百度关键词优化多少钱
  • 网站推广的案例优购物app官方下载
  • cad做兼职区哪个网站企业宽带解决方案
  • 网站推广排名公司手机网址导航主页哪个好
  • 企业网站建设的服务类型有哪些华企立方网站
  • 网站ui设计例子网站开发设计制作推广
  • 广东网站设计费用传媒网站
  • 网站建设开发 脚本语言国庆节网页设计模板免费下载
  • 建设网站的网站是什么经典的网站设计工具