Мне было интересно, как Mybatis получает частную переменную в Java.Как Mybatis (iBatis) читает мою приватную переменную?
Например:
Допустим, у нас есть класс Java с именем Foo:
public class Foo{
private int foolID;
public Foo(int foolID){
this.foolID = foolID;
}
}
И давайте создадим XML Mapper для вставки.
<insert id="insert" parameterType="Foo">
insert into foo_table (id)
values (#{foolID});
</insert>
Предположим, что для этой вставки есть java-класс FooDAO и интерфейс fooMapper java.
Мой вопрос в том, как сделать foolID доступным для чтения даже без Getter (Даже если есть метод getter для foolID, я никогда не укажу, что такое геттер ...). Мне кажется, что это волшебство, и я знаю, что для программирования нет магии ... :)
Единственный способ, которым я могу думать, это отражение.
Спасибо за вашу помощь заранее.
Другой вопрос, что вы подразумеваете под «только при доступе к закрытым полям». Как ограничить частные поля? – Xin
Вы можете включить [диспетчер безопасности] (http://docs.oracle.com/javase/tutorial/essential/environment/security.html) и настроить его на вас [GlassFish] (https://weblogs.java. net/blog/felipegaucho/archive/2010/01/02/glassfish-securitymanagercheckpermission) сервер, чтобы ограничить отражение. –