java每日5问(第42天)

自动装配有哪些方式?

1、no - 这是默认设置,表示没有自动装配。应使用显式 bean 引用进行装配。
2、byName - 它根据 bean 的名称注入对象依赖项。它匹配并装配其属性与 XML 文件中由相同名称定义的 bean。
3、byType - 它根据类型注入对象依赖项。如果属性的类型与 XML 文件中的一个 bean 名称匹配,则匹配并装配属性。4、构造函数 - 它通过调用类的构造函数来注入依赖项。它有大量的参数。
5、autodetect - 首先容器尝试通过构造函数使用 autowire 装配,如果不能,则尝试通过
byType 自动装配。

自动装配有什么局限?

1、覆盖的可能性 - 您始终可以使用 和 设置指定依赖项,这将覆盖自动装配。
2、基本元数据类型 - 简单属性(如原数据类型,字符串和类)无法自动装配。
3、令人困惑的性质 - 总是喜欢使用明确的装配,因为自动装配不太精确。

Spring 的重要注解?

@Controller - 用于 Spring MVC 项目中的控制器类。
@Service - 用于服务类。
@RequestMapping - 用于在控制器处理程序方法中配置 URI 映射。
@ResponseBody - 用于发送 Object 作为响应,通常用于发送 XML 或 JSON 数据作为响应。
@PathVariable - 用于将动态值从 URI 映射到处理程序方法参数。
@Autowired - 用于在 spring bean 中自动装配依赖项。

@Qualifier - 使用 @Autowired 注解,以避免在存在多个 bean 类型实例时出现混淆。
@Scope - 用于配置 spring bean 的范围。
@Configuration,@ComponentScan 和 @Bean - 用于基于 java 的配置。
@Aspect,@Before,@After,@Around,@Pointcut - 用于切面编程(AOP)。

@Component, @Controller, @Repository, @Service 有何区别?

1、 @Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。
spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
2、@Controller:这将一个类标记为 Spring Web MVC 控制器。标有它的 Bean 会自动导入到 IoC 容器中。
3、@Service:此注解是组件注解的特化。它不会对 @Component 注解提供任何其他行为。您可以在服务层类中使用 @Service 而不是 @Component,因为它以更好的方式指定了意图。
4、@Repository:这个注解是具有类似用途和功能的 @Component 注解的特化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。

列举 spring 支持的事务管理类型?

Spring 支持两种类型的事务管理:
程序化事务管理:在此过程中,在编程的帮助下管理事务。它为您提供极大的灵活性,但维 护起来非常困难。
声明式事务管理:在此,事务管理与业务代码分离。仅使用注解或基于 XML 的配置来管理事务。

猜你喜欢

转载自blog.csdn.net/qq_39899164/article/details/107673048