Shiro初识

Shiro初识

Shiro学习

Shiro学习 简介 Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。 概念 https://www.w3cschool.cn/shiro/co4m1if2.html 详细 使用 依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> 配置文件 [users] zhangsan=123456,admin lisi=123123,superadmin [roles] admin=product:create,product:delete,product:update,product:view public=product:view 读取配置类 //1.初始化SecurityManger安全管理器 DefaultSecurityManager sm = new DefaultSecurityManager(); //2.配置用户的权限信息到安全管理器中 Realm realm = new IniRealm("classpath:shrio.ini"); sm.setRealm(realm); //3.使用SecurityUtils将securityManager设置到运行环境中 SecurityUtils.setSecurityManager(sm); 因为没有slf4j的配置,运行控制台报出

设计模式-单例模式

单例模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例—饿汉式 类初始化直接创建对象 不管是否需要这个对象 线程安全 /** * <p> * 1. 构造器私有化 不能被实例化 * 2. 私有变量保存 * <p> * @author: YuanChangYue * @create: 2019-10-08 14:05 */ public class Singleton1 { public static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { } } 枚举类 该类型的对象只有几个有限的状态 通过限定一个 就是单例了 /** * @author: YuanChangYue * @create: 2019-10-08 14:05 */ public enum Singleton2 { //单例 INSTANCE } 在静态块中初始化,从properties文件中读取带参构造器的值。

Mybatis原理浅析和践行

原理浅析和践行

Mybatis原理浅析和践行 官方网站的提供非xml的自定的的类 实现的mybatis创建SqlSessionFactory和进行配置 https://mybatis.org/mybatis-3/getting-started.html //获得数据源 DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); //初始化事务,Mybatis的运行使用到事务 TransactionFactory transactionFactory = new JdbcTransactionFactory(); //初始化Mybatis的运行环境 Environment environment = new Environment("development", transactionFactory, dataSource); //在以上初始化的环境中,获得配置信息 Configuration configuration = new Configuration(environment); //添加mapper类到配置类中 configuration.addMapper(BlogMapper.class); //创建出sqlSessionFatory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration); 使用以上官方的代码 配置数据源 /** * 使用c3p0创建数据源 * * @return dataSource */ public ComboPooledDataSource createDateSource() { ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"); dataSource.setUser("root"); dataSource.setPassword("root"); } catch (PropertyVetoException e) { e.

Idea远程调试

idea远程调试阿里云服务器

IntelliJ IDEA 远程调试阿里云 前提是项目已经部署到阿里云上,这里使用的是阿里云的轻应用服务器,经行调试微信端访问服务器的过程 停止tomcat service tomcat stop 修改tomcat的配置 在CentOS下,进入到tomcat路径,下面演示均为我自己的路径。 cd /usr/local/tomcat 修改catalina.sh ,tomcat启动的时候会调用到,以及tomcat的优化对caralina.sh进行修改,在里面加上: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n" 小提示:使用Vim编辑器 ,按下i 插入,完成后esc退出编辑,shift+: ,输入wq保存并退出 添加安全组和防火墙 防火墙放行端口 之前在catalina.sh中添加的调试端口为8888idea 添加远程连接与设置 测试远程调试 在需要的地方打上断点,触发远程测试,我这里是使用的微信开发出现这样的界面就是连接成功了

阿里云Tomcat访问80端口

阿里云Tomcat访问80端口

阿里云轻应用服务器Tomcat访问80端口 使用阿里云轻应用服务器, 系统为centOS 7.3 , 在配置好JDK,MySql,Tomcat 后部署自己的项目 ,tomcat8080端口访问,设置80端口却不行,安全组和防火墙配置好了,域名备案也成功了,以及配置server.xml修改为80,同样是不能访问80 问题重现: 安全组: 防火墙: 监听端口: 防火墙启动: 之上的方式都是不能解决的,于是请求了阿里人工: 问题依然没有解决 解决方式: 首先查看防火墙是否启动: systemctl status firewalld 这样就是启动了,没有启动可以用: systemctl start firewalld 接着 firewall-cmd --add-masquerade --permanen 再将80端口映射到8080端口 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent 最后重载firewall firewall-cmd --reload 这样就可以成功使用80端口访问tomcat了。