Spring Boot

tech2022-08-01  135

一、在spring initializr快速创建一个demo工程

浏览器访问:https://start.spring.io 然后进入idea>>File>>open打开工程

二、添加Druid

1.在pom.xml文件中添加依赖 2.配置application.yml文件 3.配置WebConfiguration

@Configuration public class WebConfiguration implements WebMvcConfigurer { /** * druidServlet注册 */ @Bean public ServletRegistrationBean druidServletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet()); registration.addUrlMappings("/druid/*"); return registration; } /** * druid监控 配置URI拦截策略 */ @Bean public FilterRegistrationBean druidStatFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter( "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*"); //用于session监控页面的用户名显示 需要登录后主动将username注入到session里 filterRegistrationBean.addInitParameter("principalSessionName", "username"); return filterRegistrationBean; } /** * druid数据库连接池监控 */ @Bean public DruidStatInterceptor druidStatInterceptor() { return new DruidStatInterceptor(); } @Bean public JdkRegexpMethodPointcut druidStatPointcut() { JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); String patterns = "com.example.demo.service.*"; //可以set多个 druidStatPointcut.setPatterns(patterns); return druidStatPointcut; } /** * druid数据库连接池监控 */ @Bean public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() { BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator(); beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class); beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor"); return beanTypeAutoProxyCreator; } /** * druid 为druidStatPointcut添加拦截 */ @Bean public Advisor druidStatAdvisor() { return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); } }

4.浏览器访问:http://localhost:8080/druid/

三、添加Mybatis Plus

1.添加依赖 2.配置application.yml

四、创建业务相关类

1.创建系统用户实体类

@Data public class SysUser { private Long id; private String userName; private String passWord; private Date createTime; private Integer userAge; private String remark; }

2.创建系统用户持久层

@Mapper public interface SysUserDao extends BaseMapper<SysUser> { }

3.创建系统用户业务层

public interface SysUserService { } @Service("SysUserService") public class SysUserServiceImp extends ServiceImpl<SysUserDao, SysUser> implements SysUserService { }

4.创建系统用户控制层

@RestController public class SysUserController { @Autowired SysUserServiceImp sysUserServiceImp; @GetMapping("/getUser") public SysUser getUser(Long id){ return sysUserServiceImp.getById(id); } @PostMapping("/insertUser") public String insertUser(SysUser sysUser){ sysUser.setCreateTime(new Date()); return sysUserServiceImp.save(sysUser)?"保存成功":"保存失败"; } @PutMapping("/updateUser") public String updateUser(SysUser sysUser){ return sysUserServiceImp.updateById(sysUser)?"修改成功":"修改失败"; } @GetMapping("/getList") public List<SysUser> getList(){ return sysUserServiceImp.list(); } }

五、添加权限框架Spring Security

1.添加依赖 2.浏览器访问http://localhost:8080 3.创建配置类

@Configuration @EnableWebSecurity public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() .anyRequest().authenticated() .and() .logout().permitAll() .and() .formLogin(); http.csrf().disable(); } @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/js/**", "/css/**", "/images/**"); } }

4.添加接口方法

@GetMapping("/") public String index(Long id){ return "欢迎使用!"; }

5.创建自定义密码编解码类

public class MyPasswordEncoder implements PasswordEncoder { final static String ENCODER_PWD = "123456"; @Override public String encode(CharSequence rawPassword) { return rawPassword + ENCODER_PWD; } @Override public boolean matches(CharSequence rawPassword, String encodedPassword) { return encodedPassword.equals(rawPassword+ENCODER_PWD); } }

修改配置用户密码编解码方式

@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder()).withUser("admin").password(new MyPasswordEncoder().encode("123456")).roles("ADMIN"); }

6.访问http://localhost:8080/getList

最新回复(0)