前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring IOC容器之bean对象创建

Spring IOC容器之bean对象创建

原创
作者头像
阔乐
发布2023-05-09 11:31:00
2460
发布2023-05-09 11:31:00
举报
文章被收录于专栏:Spring ioc

1.注解实现

@Component和其衍生注解,如@Service、@Repository、@Controller等。这些注解都是通过spring的组件扫描机制来扫描并创建对象的

代码语言:javascript
复制
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    //新增
    public Boolean add(User user){ return userMapper.add(user);}
    //删除
    public Boolean del(int id){return userMapper.del(id);}
    //修改
    public Boolean edit(User user){return userMapper.edit(user);}
    //查找全部
    public List<User> findall(){return userMapper.findall();}
    //查找单个
    public User findone(int id){return  userMapper.findone(id);}
    //验证
    public User login(User user){return userMapper.login(user);}
}

2.xml配置实现

代码语言:javascript
复制
<bean id="user" class="com.example.User"/>

以上为无参构造实现方式(默认)

对于有参构造对象的创建还需要根据具体注解如@Value或者xml语法来实现

一、

代码语言:javascript
复制
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    @Value("${user.age}")
    public String age;
    @Value("Yongwang Dong")
    public String name;
}

如上使用@Autowired、@Value注解来注入三个属性值,其中@Value使用了 ${}语法来引用配置文件中的值

二、

xml有参构造创建对象有三种实现方式:

1.index下标方式

代码语言:javascript
复制
<bean id="user" class="com.hardy.pojo.User">
<constructor-arg index="0" value="hardy"/>
</bean>

2.参数类型匹配(容易冲突)

代码语言:javascript
复制
<bean id="user" class="com.hardy.pojo.User">
<constructor-arg type="java.lang.String" value="hardy"/>
</bean>

3.直接根据参数名称匹配

代码语言:javascript
复制
<bean id="user" class="com.hardy.pojo.User">
<constructor-arg name="name" value="hardy3"/>
</bean>

小结:Spring将类对象的创建、管理、分配统一交由ioc实现,解决不同组件直接的依赖关系,降低系统耦合性,使得程序员更专注于业务代码;IOC(控制反转),控制:Spring开始控制对象,反转:程序本事不需创建对象,而是被动接收对象。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档