什么情况下要用单例模式?
bean默认是单例模式
mybatis是单例模式吗?
mybatis和单例模式没有什么关系,只是在spring整合mybatis后,可用spring来用单例模式管理SqlSessionFactory。
可做工具类:
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class sqlSessionFactoryUtil {
//首先创建静态成员变量sqlSessionFactory,静态变量被所有的对象所共享。
public static SqlSessionFactory sqlSessionFactory = null;
public static SqlSessionFactory getSqlSessionFactory() {
//如果sqlSessionFactory没有被创建就读取全局配置文件,假如已经被创建过了,就使用已经存在的sqlsessionfactory。
//这样就有了单例模式的效果
if(sqlSessionFactory==null){
String resource = "mybatis/SqlMapConfig.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sqlSessionFactory;
}
}
springCloud如何单例模式的用mybatis?
controller是单例模式,好处和坏处是什么?
Spring Security是什么?
数据库view的优缺点?
优点:可以简化查询sql。视图实际上相当于虚拟视窗,并不储存数据,因此无法修改数据,有一定安全性。可以将不同库的数据联合展示。
缺点:实际上在查询时,会转为对基本表的查询,所以性能并不好。数据小的时候跟表查询性能差不多,但是在数据大的时候,视图会慢些,因为会先加载视图。
druid有什么特殊的作用?
不仅有数据库连接池,还主要可以监控数据库查询,时间内容等。
jdbc的uri中,useSSL=true是干嘛的?
MySQL默认的数据通道是不加密的,在一些安全性要求特别高的场景下,我们需要配置MySQL端口为SSL,使得数据通道加密处理,避免敏感信息泄漏和被篡改。
当然,启用MySQL SSL之后,由于每个数据包都需要加密和解密,这个对MySQL的性能是有不小影响的,读者们在使用的时候,要根据实际情况斟酌。
Windows下如何配置MySQL SSL安全传输:
1、首先明确你的MySQL版本是否支持或是否开启SSL:show global variables like 'have_%ssl';
2、确认OpenSSL安装并加入PATH系统路径环境变量。
3、正确创建号证书。
4、通过my.cnf或者命令行在mysql启动的时候加载证书配置,例如:mysqld --ssl-ca=ca-cert.pem --ssl-cert=server-cert.pem --ssl-key=server-key.pem。
5、客户端连接时同样要记得加载证书。
连接时出现java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.怎么办?
mysql驱动太老,没有适配caching_sha2_password 的密码规则,升级到最新版本就可以了。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
改为<version>8.0.11</version>
出现java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time
时区的错误,在uri后加&serverTimezone=GMT%2B8
docker是什么?
@interface和interface的区别是什么?
二者没有关系,interface是借口,@interface是定义一个注解
@Resources和@Autowired的区别?
@Autowired//默认按type注入
@Qualifier("cusInfoService")//一般作为@Autowired()的修饰用
@Resource(name="cusInfoService")//默认按name注入,可以通过name和type属性进行选择性注入
https://blog.csdn.net/weixin_40423597/article/details/80643990
@Repository @Component @Service @Controller之间的区别和联系?
@Component
, @Service
, @Controller
, @Repository
是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理@Component
是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能@Repository
注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。@Controller
是spring-mvc的注解,具有将请求进行转发,重定向的功能。@Service
是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。