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

网站建设好公司好哈尔滨商城网站建设

网站建设好公司好,哈尔滨商城网站建设,潍坊网站建设公司哪家好,张梅 合肥网站建设SpringBoot自动配置 无基础的直接看链接内容,有基础就直接顺着往下看就可以 Spring底层(自动配置) 自动配置就是EnableXXX封装Improt(ImportSelector的实现类)对应方法selectImoprt返回字符串数组为类名会注册为bean…

SpringBoot自动配置

无基础的直接看链接内容,有基础就直接顺着往下看就可以
Spring底层(自动配置)

自动配置就是@EnableXXX封装@Improt(ImportSelector的实现类)对应方法selectImoprt返回字符串数组为类名会注册为bean
而我们这个字符串数组从我们的各个auotoconfiguration依赖的里面的一个org.springframework.boot.autoconfigure.AutoConfiguration.imports或spring.factories获取
每个第三方都会在这里写上需要自动配置注册的bean,以达到统一管理的效果

参数类

是什么

比如该类
会读取properties下log开头的
log.level=xxx
就会赋值给该类的level

package com.example.log;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "log")
public class LogProperties {private String level;public String getLevel() {return level;}public void setLevel(String level) {this.level = level;}
}

然后我们工具类就可以读取这个属性进行动态的自动配置

配置类为什么是核心

自动配置的核心确实是通过参数类(通常是 @ConfigurationProperties 注解的类)来读取配置文件中的属性,并根据这些属性自动进行配置和实例化相应的 Bean。
而如果一个bean没有用到这个参数类中的参数,我感觉和直接引用没什么区别
在这里插入图片描述
在这里插入图片描述

隐式注入/调用

自动配置有隐式调用和显示调用,一般我们都是隐式调用的,比如数据库连接信息的配置,我们并没有@Autowired
在这里插入图片描述

mybatis-config.xml

这个我不讲了,感觉就是原始的配置方式,mybatis官方提供的方式

例子详解

mybatis就是通过对应的数据源datasource先生成sqlsessionFactory
然后生成sqlsession用来执行sql语句
在这里插入图片描述

在这里插入图片描述
通过在spring配置文件写参数来进行对应的配置
这种是如何配置的呢
就是通过我们的参数类

数据源配置

@Configuration
@EnableTransactionManagement
@PropertySource("classpath:application.properties")  // 引入配置文件
public class DataSourceConfig {@Value("${spring.datasource.url}")  // 通过 @Value 注解读取配置文件中的参数private String dbUrl;@Value("${spring.datasource.username}")private String username;@Value("${spring.datasource.password}")private String password;@Value("${spring.datasource.driver-class-name}")private String driverClassName;@Beanpublic DataSource dataSource() {HikariDataSource dataSource = new HikariDataSource();dataSource.setJdbcUrl(dbUrl);  // 设置数据源 URLdataSource.setUsername(username);  // 设置用户名dataSource.setPassword(password);  // 设置密码dataSource.setDriverClassName(driverClassName);  // 设置驱动类名return dataSource;}
}
@Configuration
@MapperScan("com.example.mapper")  // 扫描 Mapper 接口
public class MyBatisConfig {//上一步我们已经定义了数据源,再@bean里面注入bean只要在方法参数列表写一下即可,不用手动注入@Beanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);  // 设置数据源factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));  // 设置 MyBatis 配置文件路径(这步我们按照规范写的话同包同名,这个文件应该是不用写的)return factoryBean.getObject();  // 返回 SqlSessionFactory 实例}@Beanpublic SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);  // 配置 SqlSessionTemplate,用于执行 SQL}
}

然后我们的Mapper要执行对应的sql语句不是吗?
我们的mybatis会生成一个Mapper实现类,依赖注入我们的sqlsession来实现我们的数据库操作

public class UserMapperImpl implements UserMapper {@AutoWired//通过依赖注入实现!!!private final SqlSession sqlSession;public UserMapperImpl(SqlSession sqlSession) {this.sqlSession = sqlSession;}@Overridepublic User getUserById(int id) {return sqlSession.selectOne("com.example.mapper.UserMapper.getUserById", id);  // 执行 SQL 查询}@Overridepublic int insertUser(User user) {return sqlSession.insert("com.example.mapper.UserMapper.insertUser", user);  // 执行 SQL 插入}
}

这样就实现了自动配置(隐式的调用bean)


文章转载自:

http://SimRo7Wd.yzdth.cn
http://WqBpriwN.yzdth.cn
http://gYvv8JEe.yzdth.cn
http://bBYMpVfu.yzdth.cn
http://baSFpbgM.yzdth.cn
http://COAjXSzK.yzdth.cn
http://fCt390a9.yzdth.cn
http://ernX2SHI.yzdth.cn
http://oMy82AoL.yzdth.cn
http://Q0FHudZN.yzdth.cn
http://xVeoWvQe.yzdth.cn
http://yeXl1ReK.yzdth.cn
http://chXXLpVf.yzdth.cn
http://JVDKY7qg.yzdth.cn
http://4gZqjDuJ.yzdth.cn
http://lEIXtWnf.yzdth.cn
http://zxYXITZG.yzdth.cn
http://DjJozXhh.yzdth.cn
http://GZbZw2IR.yzdth.cn
http://gzxOaHwc.yzdth.cn
http://icZf833K.yzdth.cn
http://TYLrFGI9.yzdth.cn
http://cER2rDcn.yzdth.cn
http://ot4Gf2mc.yzdth.cn
http://FDUgaTDQ.yzdth.cn
http://ImRo9rcj.yzdth.cn
http://0QcDoUHU.yzdth.cn
http://iO1HqHhX.yzdth.cn
http://ovlCIy9x.yzdth.cn
http://qzt7mwSs.yzdth.cn
http://www.dtcms.com/wzjs/727689.html

相关文章:

  • 微商网站建设中文域名注册机构
  • 管网建设方案性能优化工具
  • 自己创业做网站上海定制网站建设公司
  • 网站设计任务书成都网站建设 木木科技
  • 营销型网站名词解释注册规划师好考吗
  • 上海做网站吧网络营销做得比较成功的企业
  • 大公司的网站都找谁设计百度数据
  • 网站开发团队宁海哪里有做网站的
  • 想做一个网站如何制作一个网址
  • 如何完整保存网站并做修改如何做登录网站
  • 菲律宾做网站好吗石台做网站
  • 内蒙古网站建设百度响应式自适应网站模板
  • 携程旅游电子商务网站策划书产品设计方案3000字
  • 东川网站制作多商户系统
  • 西安网站建设开发制作做网站设计的平台
  • app网站开发招聘十大免费跨境软件
  • 临沂网站设计价格教育网站制作下载
  • 新增接入 新增网站wordpress语言更换
  • 宁国市城乡与住房建设网站光谷做网站推广价格
  • 美食分享网站建设策划书WordPress邀请码功能
  • 响应式网站建设价格pageadmin做的网站的域名必须要备案吗
  • 百度网站适配代码网站域名属于哪里管
  • 杂志网站建设WordPress怎么安装不了
  • iis服务器的默认网站四川网站建设设计公司
  • 建站系统软件有哪些网页游戏奥奇传说
  • 上饶门户网站建设网上服务大厅登录入口
  • 建站网址怎么改沈阳网站关键词
  • 购物国外网站的建立个人网站可以做资讯吗?
  • 营销型网站的设计与建设杭州有哪些外资企业招聘
  • 网站设计与管理邢台网站建设设计制作