技术支持 东莞网站建设电脑回收,网络股权设计培训课程,制作网页工具按工作方式,湖南人文科技学院图书馆官网Java框架
问题一#xff1a;Spring框架中的单例bean是线程安全的吗#xff1f; 看下图#xff0c;不能被修改的成员变量就是无状态的类#xff0c;无状态的类没有线程安全问题#xff0c;所以在开发中尽量避免可修改的成员变量。 回答#xff1a;不是线程安全的#xf…
Java框架
问题一Spring框架中的单例bean是线程安全的吗 看下图不能被修改的成员变量就是无状态的类无状态的类没有线程安全问题所以在开发中尽量避免可修改的成员变量。 回答不是线程安全的Spring中有一个Scope注解默认的值是singleton单例的因为一般在Spring的bean中都是注入无状态的对象没有线程安全问题而如果在bean中定义了可修改的成员变量则要考虑线程安全问题可以使用多例或加锁来解决。
问题二什么是AOP有没有在项目中使用到AOPSpring的事务如何实现
将非业务逻辑代码(交叉业务)提取出来形成一个独立的横向切面将业务逻辑看成是纵向的以横向交叉的方式应用到业务流程中使代码的复用性增强降低模块间的耦合度同时提高系统的可维护性。 常见的AOP使用场景
记录操作日志缓存处理Spring中内置的事务处理
在后台开发中都需要记录操作日志 Spring的事务其本质是通过AOP实现的对方法前后进行拦截在执行方法之前开启事务在执行完目标方法后根据执行情况提交或者回滚事务。
列举一些重要的Spring模块 Spring CoreSpring框架的核心提供了控制反转IoC容器和依赖注入DI功能。
Spring Beans定义了Spring的beans的配置方式包括基于注解和XML的配置。
Spring Context提供了一种更加丰富的框架应用上下文包括国际化、事件传播、资源访问等。
Spring AOP面向切面编程模块允许开发者定义横切关注点如日志记录、事务管理等。
Spring DAO数据访问对象模块提供了对JDBC的抽象简化了数据访问层的编码。
Spring JDBC提供了对Java数据库连接JDBC的抽象和简化使得数据库操作更加方便。
Spring ORM对象关系映射模块支持与Hibernate、JPA、MyBatis等ORM工具的集成。
Spring TX事务管理模块提供了声明式和编程式事务管理的支持。
BeanFactory 和 ApplicationContext有什么区别 是spring的核心接口都可以作为容器ApplicationContext是BeanFactory的子接口。 BeanFactory 是spring最底层的接口包含各种Bean的定义和Bean的管理。 ApplicationContext 作为BeanFactory的派生除了有BeanFactory的功能以外还提供了更多的功能。
区别
BeanFactroy采用的是延迟加载形式来注入Bean的使用到bean才会加载。ApplicationContext一次性加载所有bean。 BeanFactory需要手动注册而ApplicationContext则是自动注册。 BeanFactory不支持国际化ApplicationContext支持国际化(实现MessageSource接口)。 BeanFactory不支持AOPApplicationContext支持AOP可以与Spring的AOP框架集成提供声明式事务管理
问题三SpringMVC的执行流程 Spring 的常见注解有哪些
第一类是声明bean有Component、Service、Repository、Controller
第二类是依赖注入相关的有Autowired、Qualifier、Resourse
第三类是设置作用域 Scope
第四类是spring配置相关的比如ConfigurationComponentScan 和 Bean
第五类是跟aop相关做增强的注解 AspectBeforeAfterAroundPointcut
SpringMVC常见的注解有哪些
有RequestMapping用于映射请求路径
RequestBody注解实现接收http请求的json数据将json转换为java对象
RequestParam指定请求参数的名称
PathViriable从请求路径下中获取请求参数(/user/{id})传递给方法的形式参数ResponseBody注解实现将controller方法返回对象转化为json对象响应给客户端。RequestHeader获取指定的请求头数据还有像PostMapping、GetMapping这些。
Springboot自动配置原理
在Spring Boot项目中的引导类上有一个注解SpringBootApplication这个注解是对三个注解进行了封装分别是 SpringBootConfiguration EnableAutoConfiguration ComponentScan
其中EnableAutoConfiguration是实现自动化配置的核心注解。
该注解通过Import注解导入对应的配置选择器。关键的是内部就是读取了该项目和该项目引用的Jar包的的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。
在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。
一般条件判断会有像ConditionalOnClass这样的注解判断是否有对应的class文件如果有则加载该类把这个配置类的所有的Bean放入spring容器中使用。