文章目录

    • 1. Maven 搭建springboot
    • 2. 建立基本的Spring项目
      • 2.1 Hello spring
      • 2.2 启动springboot
      • 2.3 访问静态资源
      • 2.4 mybatis+springboot
      • 2.5 jpa+springboot
    • 3. 多数据源
      • 3.1 以 mybites 为例
        • 3.1.1 向properties文件添加信息
        • 3.1.2 写mapper包
        • 3.1.3 添加数据源配置类
        • 3.1.4 APP
    • 4. 分布式事务
      • 4.1 以mybites 为例
        • 4.1.1 添加依赖
        • 4.1.2 向properties文件添加信息
        • 4.1.3 新建配置类
        • 4.1.4 添加数据源配置类
        • 4.1.5 APP添加注解
    • 5. 全局异常捕获
    • 6. 读取properties文件内容
    • 7. 日志配置
      • 7.1 新建log.properties文件
      • 7.2 控制器中添加日志对象
    • 8. 添加多环境

1. Maven 搭建springboot

  • pom.xml文件内容

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>springbootdemo</artifactId><version>1.0-SNAPSHOT</version><!--父类 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.3.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 引入freeMarker的依赖包. --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>
    <!-- 引入数据库相关的依赖包. --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.12</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- 引入分布式事务管理的依赖包. --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jta-atomikos</artifactId></dependency></dependencies><!-- 配置打包配置信息 --><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.zsl.App</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
    </project>
    

2. 建立基本的Spring项目

2.1 Hello spring

  • Spring Hello程序

    package com.zsl.controller;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;/*** @author m1767*/
    @EnableAutoConfiguration
    @RestController
    public class HelloController {@RequestMapping("/")public String hello(){return "hello";}
    }
    2.2 启动springboot 方式
    

2.2 启动springboot

  • 运行springboot方式一:

    • 在HelloController 类中建立main函数

      package com.zsl.controller;import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;/*** @author m1767*/
      @EnableAutoConfiguration
      @RestController
      public class HelloController {@RequestMapping("/")public String hello(){return "hello";}public static void main(String[] args) {SpringApplication.run(HelloController.class,args);}
      }

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XRCgl2tk-1643130698624)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643098709385.png)]

    • 但是上述运行方式只能执行一个Controller。对于一个完整的项目,这种方式无法启动整个项目,所以推荐第二种方式

    • 方式二:建立APP类,通过这个类运行整个项目

      package com.zsl;import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.context.annotation.ComponentScan;/*** @author m1767*/
      @ComponentScan(basePackages = {"com.zsl.controller"})//扫包,将javabean添加到容器里
      public class App {public static void main(String[] args) {SpringApplication.run(App.class,args);}
      }
      

2.3 访问静态资源

  • 添加引用包

  •         <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>
    
  • 访问static资源

    • 新建static文件夹,静态资源放在该文件夹里面就好
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTebNk2P-1643130698626)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643100030319.png)]
    • 浏览器输入localhost:8080/this.jpg,就可以查看到文件夹
  • 访问html页面

    • 新建templates文件夹

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-teTgo8ag-1643130698626)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643100280421.png)]

    • 文件后缀名为ftl

    • controller层

    • package com.zsl.controller;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.ResponseBody;import java.util.Map;/*** @author m1767*/
      @Controller
      public class HtmlController {@RequestMapping("/indexController")public String index(){System.out.println("index");return "index";}
      }
    • 返回到字符串是视图名称,不需要后缀名(注解一定是Controller)

2.4 mybatis+springboot

  • 导入依赖包

  •                 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.12</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency>
    
  • 配置application.properties文件

  • spring.datasource.url=jdbc:mysql://localhost:3306/spring?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
  • 新建mapper包,新建UserMapper接口

  • package com.zsl.mapper;import com.zsl.models.User;// 在models包的User模型类
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;/*** @author m1767*/public interface UserMapper {/*** 通过名字查找用户* @param name* @return*/@Select("SELECT * FROM USERS WHERE NAME = #{name}")User findByName(@Param("name") String name);/*** 插入数据* @param name* @param age* @return*/@Insert("INSERT INTO USERS(NAME, AGE) VALUES(#{name}, #{age})")int insert(@Param("name") String name, @Param("age") Integer age);
    }
  • Controller层代码

  • package com.zsl.controller;import com.zsl.mapper.UserMapper;
    import com.zsl.models.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
    import java.util.Map;/*** @author m1767*/
    @RestController
    public class UserController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/getUser")public Map<String, Object> getUser(String name){Map<String, Object> map = new HashMap<String, Object>();User user = userMapper.findByName(name);map.put("user",user);return map;}@RequestMapping("/insertUser")public String insertMap(String name,Integer age){userMapper.insert(name,age);return "success";}
    }
  • 查询数据

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7nFwvst-1643130698627)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643106732010.png)]

2.5 jpa+springboot

  • 导入依赖包

  •                <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.12</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
    
  • 新建实例类

  • package com.zsl.entity;import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;/*** @author m1767*/
    @Entity(name = "users")
    public class UserEntity {@Id@GeneratedValueprivate Integer id;@Columnprivate String name;@Columnprivate Integer age;public Integer getId() {return id;}public String getName() {return name;}public Integer getAge() {return age;}public void setId(Integer id) {this.id = id;}public void setName(String name) {this.name = name;}public void setAge(Integer age) {this.age = age;}
    }
  • 新建Dao层 UserDao

  • package com.zsl.dao;import com.zsl.entity.UserEntity;
    import org.springframework.data.jpa.repository.JpaRepository;/*** @author m1767*/
    public interface UserDao extends JpaRepository<UserEntity,Integer> {}
  • Controller层

  • package com.zsl.controller;import com.zsl.dao.UserDao;
    import com.zsl.entity.UserEntity;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;/*** @author m1767*/
    @RestController
    public class JpaUserController {@Autowiredprivate UserDao userDao;@RequestMapping("/jsp/getUser")public UserEntity getUser(Integer id){UserEntity userEntity = userDao.findOne(id);System.out.println(userEntity);return userEntity;}@RequestMapping("/jsp/insertUser")public String  getUser(String name,Integer age){UserEntity userEntity = new UserEntity();userEntity.setAge(age);userEntity.setName(name);userDao.save(userEntity);System.out.println(userEntity);return "success";}
    }

3. 多数据源

3.1 以 mybites 为例

3.1.1 向properties文件添加信息

spring.datasource.test1.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.test1.url = jdbc:mysql://localhost:3306/spring?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.test1.username = root
spring.datasource.test1.password = 123456
spring.datasource.test.minPoolSize = 3
spring.datasource.test.maxPoolSize = 25
spring.datasource.test.maxLifetime = 20000
spring.datasource.test.borrowConnectionTimeout = 30
spring.datasource.test.loginTimeout = 30
spring.datasource.test.maintenanceInterval = 60
spring.datasource.test.maxIdleTime = 60
spring.datasource.test.testQuery = select 1spring.datasource.test2.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.test2.url = jdbc:mysql://localhost:3306/spring01?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.test2.username = root
spring.datasource.test2.password = 123456
spring.datasource.test2.minPoolSize = 3
spring.datasource.test2.maxPoolSize = 25
spring.datasource.test2.maxLifetime = 20000
spring.datasource.test2.borrowConnectionTimeout = 30
spring.datasource.test2.loginTimeout = 30
spring.datasource.test2.maintenanceInterval = 60
spring.datasource.test2.maxIdleTime = 60
spring.datasource.test2.testQuery = select 1

3.1.2 写mapper包

新建俩个包mapper01,mapper02 ,内容一致,名称不一样

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pJESC66y-1643130698628)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643127578552.png)]

package com.zsl.mapper01;import com.zsl.models.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;/*** @author m1767*/public interface UserMapper01 {/*** 通过名字查找用户* @param name* @return*/@Select("SELECT * FROM USERS WHERE NAME = #{name}")User findByName(@Param("name") String name);/*** 插入数据* @param name* @param age* @return*/@Insert("INSERT INTO USERS(NAME, AGE) VALUES(#{name}, #{age})")int insert(@Param("name") String name, @Param("age") Integer age);
}

3.1.3 添加数据源配置类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B4vVdSM1-1643130698628)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643127227479.png)]


package com.zsl.datasources;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;/*** datasourceTest1, 写法固定,改一下bean里的name值就行,通过spring容器获取相应的类的时候,要输入正确的   类名@Qualifier("test1DataSource") DataSource dataSource test1DataSrouce是第一个方法bean注解里的name值,不可乱写。* @author m1767*/
@Configuration
@MapperScan(basePackages = {"com.zsl.mapper01"}, sqlSessionFactoryRef = "test1SqlSessionFactory")
public class DataSourceTest1 {@Primary@Bean(name = "test1DataSource")@ConfigurationProperties(prefix = "spring.datasource.test1")public DataSource testDataSource() {return DataSourceBuilder.create().build();}@Primary@Bean(name = "test1SqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);return bean.getObject();}@Primary@Bean(name = "test1TransactionManger")public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {return new DataSourceTransactionManager(dataSource);}@Primary@Bean(name = "test1SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}}
package com.zsl.datasources;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;/***test2** @author m1767*/
@Configuration
@MapperScan(basePackages = {"com.zsl.mapper02"},sqlSessionFactoryRef = "test2sqlSessionFactory")
public class DataSourceTest2 {@Bean(name = "test2DataSource")@ConfigurationProperties("spring.datasource.test2")public DataSource testDataSource(){return DataSourceBuilder.create().build();}@Bean(name = "test2sqlSessionFactory")public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception{SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);return bean.getObject();}@Bean(name = "test2TransactionManger")public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}@Bean(name = "test3SqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test2sqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception{return new SqlSessionTemplate(sqlSessionFactory);}}

3.1.4 APP

package com.zsl;import com.zsl.datasources.DataSourceTest1;
import com.zsl.datasources.DataSourceTest2;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;/***  *只需要SprintBootAplication注解即可* @author m1767*/
@SpringBootApplication
@MapperScan(basePackages = {"com.zsl.mapper"})
@EntityScan(basePackages = {"com.zsl.entity"})
@EnableJpaRepositories
public class App {public static void main(String[] args) {SpringApplication.run(App.class,args);}
}

4. 分布式事务

解决的问题: 假如现在有俩个数据源,test1,test2,在控制器的插入数据方法 添加事务注解,并在这个方法同时操作俩个数据源,但某一刻插入数据出现异常,但只有test1 回滚,test2照常插入,俩俩者不同步。因为test使用Primary注解了,所以被当做默认数据源,所以事务的回滚只对test1有效而test2无效。所以使用jta对多数据源进行事务的统一的管理

4.1 以mybites 为例

4.1.1 添加依赖

        <!-- 引入分布式事务管理的依赖包. --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jta-atomikos</artifactId></dependency></dependencies>

4.1.2 向properties文件添加信息

mysql.datasource.test1.driverClassName = com.mysql.cj.jdbc.Driver
mysql.datasource.test1.url = jdbc:mysql://localhost:3306/spring?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
mysql.datasource.test1.username = root
mysql.datasource.test1.password = 123456
mysql.datasource.test1.minPoolSize = 3
mysql.datasource.test1.maxPoolSize = 25
mysql.datasource.test1.maxLifetime = 20000
mysql.datasource.test1.borrowConnectionTimeout = 30
mysql.datasource.test1.loginTimeout = 30
mysql.datasource.test1.maintenanceInterval = 60
mysql.datasource.test1.maxIdleTime = 60
mysql.datasource.test1.testQuery = select 1mysql.datasource.test2.driverClassName = com.mysql.cj.jdbc.Driver
mysql.datasource.test2.url = jdbc:mysql://localhost:3306/spring01?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
mysql.datasource.test2.username = root
mysql.datasource.test2.password = 123456
mysql.datasource.test2.minPoolSize = 3
mysql.datasource.test2.maxPoolSize = 25
mysql.datasource.test2.maxLifetime = 20000
mysql.datasource.test2.borrowConnectionTimeout = 30
mysql.datasource.test2.loginTimeout = 30
mysql.datasource.test2.maintenanceInterval = 60
mysql.datasource.test2.maxIdleTime = 60
mysql.datasource.test2.testQuery = select 1

4.1.3 新建配置类

俩个数据源俩个配置类,内容一样

package com.zsl.automanager;import org.springframework.boot.context.properties.ConfigurationProperties;/*** 和properties文件的变量一致* @author m1767*/@ConfigurationProperties(prefix = "mysql.datasource.test1")
public class DataConfig1 {private String url;private String username;private String password;private int minPoolSize;private int maxPoolSize;private int maxLifetime;private int borrowConnectionTimeout;private int loginTimeout;private int maintenanceInterval;private int maxIdleTime;private String testQuery;public  String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public  String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public  String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getMinPoolSize() {return minPoolSize;}public void setMinPoolSize(int minPoolSize) {this.minPoolSize = minPoolSize;}public int getMaxPoolSize() {return maxPoolSize;}public void setMaxPoolSize(int maxPoolSize) {this.maxPoolSize = maxPoolSize;}public int getMaxLifetime() {return maxLifetime;}public void setMaxLifetime(int maxLifetime) {this.maxLifetime = maxLifetime;}public int getBorrowConnectionTimeout() {return borrowConnectionTimeout;}public void setBorrowConnectionTimeout(int borrowConnectionTimeout) {this.borrowConnectionTimeout = borrowConnectionTimeout;}public int getLoginTimeout() {return loginTimeout;}public void setLoginTimeout(int loginTimeout) {this.loginTimeout = loginTimeout;}public int getMaintenanceInterval() {return maintenanceInterval;}public void setMaintenanceInterval(int maintenanceInterval) {this.maintenanceInterval = maintenanceInterval;}public int getMaxIdleTime() {return maxIdleTime;}public void setMaxIdleTime(int maxIdleTime) {this.maxIdleTime = maxIdleTime;}public String getTestQuery() {return testQuery;}public void setTestQuery(String testQuery) {this.testQuery = testQuery;}
}

4.1.4 添加数据源配置类

test1数据源和test2数据源一样。由于jta统一管理事务,则不用写事务方法(只需要修改bean的name值和从spring容器中获取bean的名称)

package com.zsl.datasource;import com.mysql.cj.jdbc.MysqlXADataSource;
import com.zsl.automanager.DataConfig1;
import com.zsl.automanager.DataConfig2;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;import javax.sql.DataSource;
import java.sql.SQLException;/*** @author m1767*/
@Configuration
@MapperScan(basePackages = {"com.zsl.mapper01"},sqlSessionFactoryRef = "t1SsF")
public class Test1 {@Primary@Bean(name = "t1DS")public DataSource testDataSource(DataConfig1 dataConfig1) throws SQLException {// 交给jta管理数据源MysqlXADataSource mysqlXaDataSource = new MysqlXADataSource();mysqlXaDataSource.setUrl(dataConfig1.getUrl());mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true);mysqlXaDataSource.setPassword(dataConfig1.getPassword());mysqlXaDataSource.setUser(dataConfig1.getUsername());mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true);AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean();xaDataSource.setXaDataSource(mysqlXaDataSource);xaDataSource.setUniqueResourceName("testDataSource");xaDataSource.setMinPoolSize(dataConfig1.getMinPoolSize());xaDataSource.setMaxPoolSize(dataConfig1.getMaxPoolSize());xaDataSource.setMaxLifetime(dataConfig1.getMaxLifetime());xaDataSource.setBorrowConnectionTimeout(dataConfig1.getBorrowConnectionTimeout());xaDataSource.setLoginTimeout(dataConfig1.getLoginTimeout());xaDataSource.setMaintenanceInterval(dataConfig1.getMaintenanceInterval());xaDataSource.setMaxIdleTime(dataConfig1.getMaxIdleTime());xaDataSource.setTestQuery(dataConfig1.getTestQuery());return xaDataSource;}@Primary@Bean(name = "t1SsF")public SqlSessionFactory testSqlSessionFactory(@Qualifier("t1DS") DataSource dataSource)throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);return bean.getObject();}@Primary@Bean(name = "testSqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("t1SsF") SqlSessionFactory sqlSessionFactory) throws Exception {return new SqlSessionTemplate(sqlSessionFactory);}
}

4.1.5 APP添加注解

package com.zsl;import com.zsl.automanager.DataConfig1;
import com.zsl.automanager.DataConfig2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;/*** @author m1767*/@SpringBootApplication@EnableConfigurationProperties(value = {DataConfig1.class, DataConfig2.class})//@MapperScan(basePackages = {"com.zsl.mapper"})
public class App {/*** 运行多个控制器* @param args*/public static void main(String[] args) {SpringApplication.run(App.class,args);}
}

5. 全局异常捕获

package com.zsl.controller;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap;
import java.util.Map;/*** 异常捕获* @author m1767*/
@ControllerAdvice
public class ExceptionHandle {@ExceptionHandler(RuntimeException.class)@ResponseBodypublic Map<String, Object> resultError(){Map<String, Object> result = new HashMap<String, Object>();result.put("success",200);result.put("error",500);return result;}
}

6. 读取properties文件内容

  • 读取属性并赋值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5QupZ8Y-1643130698629)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643130300490.png)]

  • 设置属性和值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGALNHSs-1643130698629)(C:\Users\m1767\AppData\Roaming\Typora\typora-user-images\1643130327736.png)]

7. 日志配置

7.1 新建log.properties文件

#log4j.rootLogger=CONSOLE,info,error,DEBUG
log4j.rootLogger=info,error,CONSOLE,DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n     
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout     
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info   
log4j.appender.info.append=true   
#log4j.appender.info.File=/home/admin/pms-api-services/logs/info/api_services_info
log4j.appender.info.File=/Users/dddd/Documents/testspace/pms-api-services/logs/info/api_services_info
log4j.logger.error=error  
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout     
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error   
log4j.appender.error.append=true   
#log4j.appender.error.File=/home/admin/pms-api-services/logs/error/api_services_error
log4j.appender.error.File=/Users/dddd/Documents/testspace/pms-api-services/logs/error/api_services_error
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout     
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG   
log4j.appender.DEBUG.append=true   
#log4j.appender.DEBUG.File=/home/admin/pms-api-services/logs/debug/api_services_debug
log4j.appender.DEBUG.File=/Users/dddd/Documents/testspace/pms-api-services/logs/debug/api_services_debug

7.2 控制器中添加日志对象

package com.zsl.controller;import com.zsl.mapper01.MapperTest01;
import com.zsl.mapper02.MapperTest02;
import com.zsl.model.User;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;/*** @author m1767*/
@EnableAutoConfiguration
@RestController
public class MyByteUserController {private static Logger log = Logger.getLogger(MyByteUserController.class);@Autowiredprivate MapperTest01 userDao;@Autowiredprivate MapperTest02 userDao2;@Value("${baidu}")private String baidu;@RequestMapping("/query")public User findName(String name){return userDao.findByName(name);}@Transactional@RequestMapping("/insert")public String insert(String name,Integer age){userDao.insert(name,age);userDao2.insert(name,age);log.info("插入一条数据 "+name+" "+age);return "success";}@RequestMapping("/getMsg")public String getBaidu(){return baidu;}
}

8. 添加多环境

这些也可以是properties文件

  • application-dev.yml(开发环境)
  • application-test.yml(测试环境)
  • application-uat.yml(预发布)
  • application-pro.yml(生产环境)
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【愚公系列】2022年01月 Django商城项目19-商品数据表的设计

    文章目录一、SPU、SKU和商品数据库表设计1.SPU2.SKU3.数据库设计ER图4.模型类设计二、首页广告数据库表设计1.数据库设计ER图2.模型类设计总结一、SPU、SKU和商品数据库表设计 在电商项目里面为了准确的描述商品的区别&#xff0c;我们抽象出来两个概念&#xff0c;Spu和Sku这…...

    2024/4/18 5:34:08
  2. 将wordpress网站打包成app

    WPMobile.App...

    2024/4/14 3:55:13
  3. 机器学习与深度学习

    MSE 均方误差...

    2024/4/14 3:55:18
  4. 关于登入的想法

    单体 login 1.LoginFilter(判断是否登入)if(session.getAttribute("isLogin") true) 判断是否登入chain.doFilterelse1.判断请求是否 是 发送的是 login请求&#xff08;即是否是其他请求&#xff0c;session失效了&#xff0c;而不是发送的login请求&#xff09;1…...

    2024/4/18 12:07:29
  5. 莫烦pytorch学习笔记(二)

    跟着视频写一个回归神经网络 导入所需库 分别导入torch库&#xff0c;宏定义神经元类型&#xff08;自动梯度&#xff09;Variable&#xff0c;定义激励函数库F&#xff0c;由于希望过程可视化所以导入matplotlib库 import torch from torch.autograd import Variable impor…...

    2024/4/5 4:06:23
  6. Java小农养成记第二十一天

    day21 第一章 网络编程入门 1.1 软件结构 C/S结构&#xff1a;全称为Client/Server结构&#xff0c;是指客户端和服务器结构。参见程序有QQ、迅雷的软件。 B/S结构&#xff1a;全称为Browser/Server结构&#xff0c;是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两…...

    2024/4/14 3:55:23
  7. java并发编程(3) 共享模型之管程 4

    文章目录前言1. 活跃性1. 死锁问题2. 哲学家就餐问题3. 活锁4. 饥饿5. ReentrantLock1. 可重入2. 可打断3. 锁超时4. 公平锁5. 条件变量2. 同步模式之控制1. 固定运行顺序1. 使用 wait - notify 达到线程间通信的效果2. park-unpark&#xff1a;线程 t2 唤醒线程 t12. 交替输出…...

    2024/4/14 3:56:24
  8. 【Leetcode】105. 从前序与中序遍历序列构造二叉树

    105. 从前序与中序遍历序列构造二叉树题目描述解题思路代码展示题目描述 给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。 示例1 Input: preorder [3,9,20,15,7], inorder[9,3,15,20,7] output:[3,9,20,null,null,15,7]示例2 Input: pr…...

    2024/4/17 12:21:30
  9. 《SPEECH ENHANCEMENT AUTOENCODER WITH HIERARCHICAL LATENT STRUCTURE》

    本文的作者是Koen Oostermeijer&#xff0c; Jun Du? Qing Wang&#xff0c; Chin-Hui Lee&#xff0c;University of Science and Technology of China, Hefei, China &#xff0c;Georgia Institute of Technology, Atlanta, USA 。 研究动机 用新提出的分层式的SEHAE( Sp…...

    2024/4/15 5:23:05
  10. Python初学者入门-学习方法

    Python初学者入门-学习方法 各位小伙伴们大家好&#xff0c;准备趁寒假学习一下python语言方便lammps后处理及分析&#xff0c;这两天请教了一个大佬安装了一下软件&#xff0c;并且推荐了基本资料&#xff0c;就在这里总结一下&#xff0c;希望给入门的宝宝们一些参考! 推荐书…...

    2024/4/18 17:06:29
  11. C语言/C++常见习题问答集锦(七十四)好大一棵树

    C语言/C常见习题问答集锦(七十四)好大一棵树 程序之美 头顶一个天脚踏一方土风雨中你昂起头冰雪压不服好大一棵树任你狂风呼绿叶中留下多少故事有乐也有苦效果图&#xff1a; 代码原型&#xff1a; #include <math.h> #include <stdio.h> #include <stdlib.h…...

    2024/4/20 2:11:17
  12. 动态规划专题(三个例题:简单、中等、中等)

    例题一&#xff1a;连续数列&#xff08;力扣面试题16.17 简单&#xff09; 题目链接&#xff1a;力扣https://leetcode-cn.com/problems/contiguous-sequence-lcci/ 题目&#xff1a;给定一个整数数组&#xff0c;找出总和最大的连续数列&#xff0c;并返回总和。 示例&…...

    2024/4/14 3:56:14
  13. 【spring-security基础】基于配置的用户名密码设置及适用场景说明

    目录spring-security基础 配置用户名密码适用场景基础项目搭建默认配置说明&#xff08;动态密码&#xff09;通过配置文件配置用户名密码通过配置类配置用户名密码总结spring-security基础 配置用户名密码 适用场景 配置基础的用户 密码&#xff0c;而非通过数据库等来动态校…...

    2024/4/14 3:56:24
  14. 面试题整理1

    数据库语句是如何优化的&#xff1f; 1.查询 SQL 尽量不要使用 select *&#xff0c;而是 select 具体字 2.如果知道查询结果只有一条或者只要最大/最小一条记录&#xff0c;建议用 limit 1 3.应尽量避免在 where 子句中使用 or 来连接条件 4.优化 limit 分页 5.优化 like…...

    2024/4/18 5:51:00
  15. 7z 类库解析之 Alone 工程

    7z 类库解析之 Alone 工程 介绍 ├── Asm —— 汇编源码(为了提高性能, 7z使用了部分汇编代码:crc计算、aes加密,如果cpu提供了硬件的aes指令, 就会使用硬件aes汇编指令) │ ├── arm │ └── x86 ├── C —— C语言源码(7z的核心算法,包括所有的压缩算法、打包…...

    2024/4/15 7:27:17
  16. 模型训练trick

    这里写自定义目录标题1. 多任务模型的权重&#xff1a;1.1 权重自动调节2.自动调参1. 多任务模型的权重&#xff1a; 1.1 权重自动调节 Multi-Task Learning for Dense Prediction Tasks: A Survey 依据子任务loss的梯度&#xff0c;获得权重 较好的实现&#xff1a; Automa…...

    2024/4/14 3:56:34
  17. 坚果系列-发布uniapp【uniapp 专题 02】

    作者&#xff1a;坚果 公众号&#xff1a;“大前端之旅” 华为云享专家&#xff0c;InfoQ签约作者&#xff0c;阿里云专家博主&#xff0c;51CTO博客首席体验官&#xff0c;开源项目GVA成员之一&#xff0c;专注于大前端技术的分享&#xff0c;包括Flutter,小程序,安卓&#xf…...

    2024/4/18 9:47:21
  18. 如何在 Linux 中安装 Microsoft OneDrive

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e64eb6a586cd43da90a4eade045b0c60.png?x-oss-processimage/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbWlrZXMgIHpoYW5n,size_20,color_FFFFFF,t_70,g_se,x_16)想象一下&#xff0c;像安装 Linux 文件系统的…...

    2024/4/14 3:56:24
  19. 结构体、类、指针、引用——例题

    21. 斐波那契数列 https://www.acwing.com/problem/content/19/ class Solution { public:int Fibonacci(int n) {if(n < 1) return n;else return Fibonacci(n - 1) Fibonacci(n - 2);} }; 16. 替换空格 https://www.acwing.com/problem/content/17/ class Solution…...

    2024/4/14 3:56:14
  20. Linux系统编程-Shell脚本基本使用(变量、运算符、语句等)

    1. Shell脚本介绍 Shell 本身是一个用 C 语言编写的程序&#xff0c; Shell 作为命令语言时&#xff0c;可以交互式地解释和执行用户输入的命令&#xff1b;作为程序设计语言时&#xff0c;支持定义各种变量和参数&#xff0c;并提供了许多在高级语言中才具有的控制结构&#…...

    2024/4/7 17:18:58

最新文章

  1. Oracle时间函数

    1. 时区 先说下时区&#xff0c;oracle时区分两种&#xff1a;数据库时区和会话时区。 查看数据库的时区&#xff1a;select dbtimezone from dual; 设置数据库时区&#xff1a;创建时指定&#xff1a;create database db1... set time_zone6:00; 或后期修改&#xff1a;alter…...

    2024/4/26 16:48:48
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 阿里云8核32G云服务器租用优惠价格表,包括腾讯云和京东云

    8核32G云服务器租用优惠价格表&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价&#xff0c;腾讯云和京东云是轻量应用服务器&#xff0c;阿里云是云服务器ECS&#xff1a; 阿里云8核32G服务器 阿里云8核32G服务器价格…...

    2024/4/26 10:21:08
  4. linuxday05

    1、makedile原理&#xff08;增量编译生成代码&#xff09; # &#xff08;注释符&#xff09; 目标------依赖 目标不存在//目标比依赖旧才会执行命令&#xff1b; makefile的实现 1、命名要求&#xff08;Makefile/makefile&#xff09; 2、规则的集合 目标文件&#…...

    2024/4/25 23:59:48
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/25 11:51:20
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/25 18:39:24
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/25 18:38:39
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/25 18:39:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/25 18:39:22
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/25 18:39:20
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/25 16:48:44
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/25 0:00:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/25 4:19:21
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/25 18:39:12
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/25 13:19:01
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/25 18:38:58
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/25 18:38:57
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57